J-Log
Learning Diary

[백준 1874번] 스택 수열 C++ 풀이 시간 제한 2초 메모리 제한 256MB 문제 스택 (stack)은 기본적인 자료구조 중 하나로, 컴퓨터 프로그램을 작성할 때 자주 이용되는 개념이다. 스택은 자료를 넣는 (push) 입구와 자료를 뽑는 (pop) 입구가 같아 제일 나중에 들어간 자료가 제일 먼저 나오는 (LIFO, Last in Fir...

바킹독님의 실전알고리즘배우기 6강듣고 요약 바킹독의 실전 알고리즘 6강 링크 큐의 성질 큐의 구현 큐는 배열로 구현하면 점점 원소들이 뒤로 밀리기 때문에 큐를 구현할 땐 위 그림처럼 tail과 head가 연결되는 원형 큐로 구현하는게 좋다. 하지만 코딩테스트에서는 입출력의 수가 정해져있기 때문에 충분히 배열의 크기를 크게 만들기만 하면 된다....

바킹독님의 실전알고리즘배우기 5강듣고 요약 바킹독의 실전 알고리즘 5강 링크 스택의 성질 스택의 구현 #include <bits/stdc++.h> using namespace std; const int MX = 1000005; int dat[MX]; int pos = 0; void push(int x){ dat[pos++] =...

iterator(반복자) 배열 등 자료구조의 요소를 순회하는 객체 iterator 사용법 list<int>::iterator iter; ->list의 iterator 객체 생성 list<int>::reverse_iterator iter; ->list의 reverse_iterator 객체 생성 begin(), ...

STL list C++ STL에서 지원하는 list는 이중연결리스트이다. iterator를 이용한다. 사용 가능한 기본적인 함수 이해를 돕기 위해 list가 int형일 때를 예시로 든다. li.push_front(10); -> list의 맨 앞에 10을 추가한다.이 때 iterator가 가리키는 원소는 변하지 않는다. li.push_bac...

[백준 1158번] 요세푸스 문제 C++ 풀이 시간 제한 2초 메모리 제한 256MB 문제 요세푸스 문제는 다음과 같다. 1번부터 N번까지 N명의 사람이 원을 이루면서 앉아있고, 양의 정수 K(≤ N)가 주어진다. 이제 순서대로 K번째 사람을 제거한다. 한 사람이 제거되면 남은 사람들로 이루어진 원을 따라 이 과정을 계속해 나간다. 이 과정은 N명...

[백준 1406번] 에디터 C++ 풀이 문제 한 줄로 된 간단한 에디터를 구현하려고 한다. 이 편집기는 영어 소문자만을 기록할 수 있는 편집기로, 최대 600,000글자까지 입력할 수 있다. 이 편집기에는 ‘커서’라는 것이 있는데, 커서는 문장의 맨 앞(첫 번째 문자의 왼쪽), 문장의 맨 뒤(마지막 문자의 오른쪽), 또는 문장 중간 임의의 곳(모든 연...

바킹독님의 실전알고리즘배우기 4강듣고 요약 바킹독의 실전 알고리즘 4강 링크 연결리스트의 성질 연결리스트의 종류 배열 vs 연결리스트 연결리스트의 구현 나중에 추가 야매 연결리스트 #include <bits/stdc++.h> using namespace std; const int MX = 1000005; int dat[...

배열에 관하여 알고리즘 공부를 하다가 띠용하는 일이 벌어져서 이 글에 조금 정리해둔다. 배열의 -1번째 index에 값이 할당이 되는 것처럼 보인다(?) 전에 작성한 글의 연습문제 2번에서 내가 처음 짠 코드이다(배열 값을 잘 보이게 출력하기 위해 조금 수정함) arr[] = {0, 0, 0} 배열이라 할 때 코드를 실제로 돌려보면 위 스샷과 같이 ...

[백준 1475번] 방 번호 C++ 풀이 문제 다솜이는 은진이의 옆집에 새로 이사왔다. 다솜이는 자기 방 번호를 예쁜 플라스틱 숫자로 문에 붙이려고 한다. 다솜이의 옆집에서는 플라스틱 숫자를 한 세트로 판다. 한 세트에는 0번부터 9번까지 숫자가 하나씩 들어있다. 다솜이의 방 번호가 주어졌을 때, 필요한 세트의 개수의 최솟값을 출력하시오. (6은 ...