전체 글 27

etc) 독수리 타자 탈출하기

어렸을 때부터 웬지는 모르지만 타자가 독수리 타자였던 저는 고등학교 2학년때부터 독수리 타자를 벗어나고 싶었지만 그냥 한컴타자연습으로는 잘 안됐습니다.대학교에 와서 어느 교수님도 독수리 타자를 찬다는 말을 농담으로 하는 말을 듣고 더욱 벗어나려는 강박이 심해졌습니다.이를 벗어나기 위해 이번 2학기 중간고사 시즌에 어느 한 교양을 외울 때에 통으로 모두 타자를 치기도 했지만 잘 안되었죠.그래서 전부터 이러면 어떨까라는 생각을 했습니다. "다섯 손가락에 각각 정해진 타자 위치를 외우자"라고요.여러 정보를 찾아본 결과 저는 손가락에 따른 타자의 자리가 딱 명사되어있는 자료가 없다는 것을 깨달았으며, 이를 위해 직접 만들기에 돌입했습니다.그래서 나온 output이 아래의 이것입니다. 타자의 손가락 위치를 모두 ..

etc 2024.12.17

python) n차원 리스트 선언하기, 리스트 컴프리헨션!

C언어의 경우 n차원 리스트로 2*3*4크기를 만든다면 int arr[2][3][4];이런식으로 선언만하면 만들어지지만, python의 경우 append형식이기에 기본적으로 n차원 리스트로 선언이 불가하다. 과거 C를 하다가 python으로 넘어온 필자의 경우  append 방식이 익숙하지 않아서 python에도 미리 선언해두고 값만 바꾸는 방법을 쓰기 위한 이유로 여러 자료를 찾은 적이 있다.기본적으로 n차원 리스트를 선언하는 예로 2차원으로 n*m의 리스트를 선언한다고 하면for i in range(5): list1.append([0, 0, 0, 0, 0, 0, 0, 0])print(list1)#output:#[[0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0..

C++) ios_base::sync_with_stido(0); cin.tie(0); cout.tie(0);이 무엇인가?

ios_base::sync_with_stido(0); cin.tie(0); cout.tie(0);이는 기본적으로 입출력 할때에 C++의 cin, cout의 경우 C의 printf,scanf보다 느리기에 이 입출력의 속도를 빠르게 하기 위해서/C와 속도를 비슷하게 되기 위해 쓰게된다고 알게되는 함수이다.이번에는 이 함수들에 대해 알아볼 것이다.std::ios_base::sync_with_stdio(bool _Newsync = true);맨 뒤에 들어가는 숫자는 bool값으로 즉 true, false를 나타낸다. true가 기본값이다.이 이유는 output 데이터가 엉키지 않고 올바른 순서로 처리되도록 하기 위해 동기화를 활성화하기 때문이다.C++ 표준 스트림들이 C 표준 스트림들과 각각의 입출력 연산 후에..

C/C++) 파일 입출력 기초

C언어를 통해 파일을 열고 읽어오는 방법에 대해 알아보자.기본적으로 순서는 파일 포인터 선언>fopen()함수로 파일 열기>여러 함수 처리>fcolse()함수로 파일 닫기이다.파일을 저장하는 변수의 데이터 타입은 FILE으로 포인터로 저장한다. FILE*variable일단 파일을 열기 위해서는 fopen함수를 사용해야한다.FILE *fopen(const char *filename, const char *mode);즉, variable=fopen("파일 경로", "읽기 모드")기본적으로 파일 경로를 적을때에 C:/Users/Downloads/import.txt이런 형식이라면C:\\Users\\Downloads\\import.txt이런식으로 폴더와 파일 경로는 '\'를 2개씩 써야한다.(근데 \\ 대신 /써..

C study 2024.12.09

C/C++) Visual Studio 중단점 사용하기

Visual Studio 2022 기준이며, 기본적인 중단점 사용 및 메모리 사용에 대해 다룬다.기본적으로 중단점은 열 왼쪽에 회색 열에 찍는다. 사용 방법중단점을 사용하는 이유는 코드가 중간 중간 어떻게 돌아가는지 확인하는 이유도 있지만, 메모리를 확인해보기 위해 사용하기도 한다.메모리창 키는 방법1. 중단하고 싶은 코드를 쓴 상태에서 F5(no ctrl+F5)2. 위의 선택창 중에 디버그(D) 클릭3. 창(W) 클릭4. 메모리(M) 클릭5. 메모리(1) 클릭6. 원하는 곳에 메모리 창 표시 메모리창에 있는 수는 기본적으로 16비트이며, 변수의 데이터 형식에 따른 바이트 값을 가진다.(예: int형은 4바이트)원하는 변수를 찾을 때에는 메모리1에서 주소: 부분에 &(찾으려는 변수)이런식으로 검색한다.문..

C/C++) #include<[ ].h> #include<[ ]> 차이는?

C와 C++을 다루어보면서 알게된 사실이 있다.#include #include 여기의 [      ]이 부분을 string이라 한다면(이렇게 쓰는 이유는 string카테고리가 이미 있다)#include와 같은 형식은 보통 C언어에서 볼 수 있고, #include와 같은 형식은 보통 C++언어에서 볼 수 있다.그래서 include 뒤에 붙는 string 뒤에 .h가 있는가 없는가로 헤더파일이 C에서 쓰이는 것인지 C++에서 쓰이는 것인지 알 수 있다.C++에서는 C 스타일 헤더를 네임스페이스에 맞게 변경한 버전도 제공한다.예로 기능은 거의 같지만 #include와 #include의 경우 cstdio의 경우 앞에 std::를 써야하지만 말이다.(생략가능)#includeint main() { std::p..

coding tip) 웹으로 코딩 잠깐 작업하기

잠깐 코드 작성하려하거나 다른 친구의 컴퓨터를 잠깐 코드 작성 및 돌릴 목적으로 사용하려했는데, 원하는 언어의 코딩 에디터 or 아이들이 없으면 뭘 다운하기 좀 그렇고 하면 웹에서 잠깐 작성하는 방법이 있다.이와 관련해(온라인 컴파일러라 부른다.) 가장 유명한 것은https://www.onlinegdb.com/ GDB online Debugger | Compiler - Code, Compile, Run, Debug online C, C++Online GDB is online compiler and debugger for C/C++. You can compile, run and debug code with gdb online. Using gcc/g++ as compiler and gdb as debugge..

C++) 15829, Hashing

문제 링크https://www.acmicpc.net/problem/15829문제 내용소문자 알파벳의 연이은 문자열을 받을 때,L=문자열의 길이(small:1 ≤ L ≤ 5/large1ai=문자열의 i-1번째 문자에 해당하는 알파벳(a=1, b=2, ㆍ ㆍ , z=26)r=31, M=1234567891이 H 식 구현하기 50점 나온 코드#include #include #include typedef long long int llint;using namespace std;llint n,Mod=1234567891,ans,k[51];char ar[51];string L;int main(){ cin>>n; cin>>L; for(int i=0;ifor문 안에 있는 96의 경우 'A'의 아스키코드값에서 1을 뺀 ..

python) 백준 python3 vs PyPy3

백준을 풀때에 언어 선택지 중에 python3의 경우 당연히 있는 것인데, pypy3가 선택지로써 있다.python이라는 언어는 누구나 알 것이고 그러면 pypy라는 언어가 있는것일까? pypy라는 언어는 존재한다.pypy는JIT 컴파일러를 통해 실행 속도를 최적화하는 기능을 추가한 인터프리터 언어이다.인터프리터 언어한줄 한줄 읽고 실행하고 일고 실행하고 반복ㆍ ㆍ호환성은 문제없음인터프리터언어 but, JIT(Just-In-Time) 컴파일러가 있는JIT(Just-In-Time) 컴파일러를 통해 프로그램 실행 중에 반복적으로 실행되는 코드를 분석하고, 실행 도중에 네이티브 머신 코드로 변환하여 성능을 향상시킴즉, 반복 작업이 있는 코드 실행시 유용하다.NumPy, pandas와 같은 확장 모듈이 없음Py..

C++) 17288, 3개만!

문제 링크https://www.acmicpc.net/problem/17288 문제 내용문자열을 입력 받아서연속된 세 숫자의 오름차순 카운트하기(3미만, 3초과는 카운트 안함) 잘못 풀었던 풀이법#includeusing namespace std;string s;short cntplus=1, cntans;int main() { ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); cin >> s; for (unsigned short i = 1; i 3) { cntans--; cntplus = 1; } } cout 처음에 3개를 한번에 확인하는 방법을 안쓰고 하나하나 비교하면서 cnt가 3일때에 정답에 대한 ..

BOJ/string 2024.11.23