본문 바로가기
  • 원하는 게 있으면 주문을 말해봐~ 디딩 보딩 디보디보딩🎶

백준3

[백준/c++] 2493번 탑 풀이(골드5) 백준에 'BaaaaaaaaaaarkingDog'님이 알고리즘 종류별로 문제집을 만들어 놓으신 게 있어서 이 커리큐럼을 따라 알고리즘 종류별로 하나씩 공부하는 중이다. '0x'라고 검색한 후 문제집 탭을 클릭하면 쉽게 찾을 수 있다. 연결리스트 문제를 다 풀고 오늘은 스택 문제를 풀어볼 차례이다. 요즘 계속 실버 난이도의 문제만 풀다가 골드 문제가 나와서 당황했지만 언제까지 쉬운 문제만 풀 수 없으니 도전! 문제 https://www.acmicpc.net/problem/2493 2493번: 탑 첫째 줄에 탑의 수를 나타내는 정수 N이 주어진다. N은 1 이상 500,000 이하이다. 둘째 줄에는 N개의 탑들의 높이가 직선상에 놓인 순서대로 하나의 빈칸을 사이에 두고 주어진다. 탑들의 높이는 1 www.ac.. 2024. 1. 12.
[백준/c++] 1158번 요세푸스 풀이(실버4) 문제 https://www.acmicpc.net/problem/1158 1158번: 요세푸스 문제 첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 5,000) www.acmicpc.net 풀이 1부터 n의 연속된 자연수 배열을 원형큐 형태로 배치하였을 때 k번째 숫자를 계속 제거해야 하는 문제이다. 리스트에서 중간 숫자를 계속 삭제해야 하는 문제이기 때문에 c++의 list(linked list)를 사용하였다. 알고리즘은 매우 간단하게 짰다. 1부터 n의 리스트를 생성한 후, 리스트의 값이 전부 사라질 때까지 반복문을 돌려 k번째 반복일 때 iter가 가리키는 출력과 동시에 삭제했다. 코드 #include #include #include using namespace .. 2024. 1. 8.
[백준/c++] 5397번 키로거 풀이(실버2) 문제 https://www.acmicpc.net/problem/5397 5397번: 키로거 첫째 줄에 테스트 케이스의 개수가 주어진다. 각 테스트 케이스는 한줄로 이루어져 있고, 강산이가 입력한 순서대로 길이가 L인 문자열이 주어진다. (1 ≤ L ≤ 1,000,000) 강산이가 백스페이스를 입 www.acmicpc.net 풀이 이 문제는 배열의 중간에서 삽입, 삭제가 빈번하게 일어난다. 따라서 vector나 deque보다 list를 사용하는 것이 효율적이다. c++에서 list는 linked list를 의미한다. 그래서 배열의 중간 부분을 삽입, 삭제할 때 다른 연속적인 메모리 리스트보다 효율적이다. 먼저 문자열을 입력받은 뒤, 입력받은 문자열의 모든 요소를 순차적으로 탐색하여 list에 삽입, 삭제한.. 2024. 1. 8.