리스트3 백준 온라인 저지 | 5397번 키로거 | C++ 백준 온라인 저지 | 5397번 키로거 | C++ 5397번: 키로거 첫째 줄에 테스트 케이스의 개수가 주어진다. 각 테스트 케이스는 한줄로 이루어져 있고, 강산이가 입력한 순서대로 길이가 L인 문자열이 주어진다. (1 ≤ L ≤ 1,000,000) 강산이가 백스페이스를 입 www.acmicpc.net 1. 문제 정의 ■ 1.1 리스트 반복자 강산이가 비밀번호 창에서 입력한 키가 주어지고 이 키는 알파벳 대문자, 알파벳 소문자, 숫자, 백스페이스, 화살표 키로 구성된다. 강산이가 입력한 길이가 L인 문자열에서 화살표 키로 커서를 움직이거나 백스페이스 키로 문자를 지워야 하기 때문에 데이터를 중간에 삽입하고 삭제하기 편한 리스트(list)로 코드를 구현하는 것이 적절해 보인다. ■ 1.2 리스트 메서드 리.. 2022. 2. 27. 백준 온라인 저지 | 1406번 에디터 | C++ 백준 온라인 저지 | 1046번 에디터 | C++ 1406번: 에디터 첫째 줄에는 초기에 편집기에 입력되어 있는 문자열이 주어진다. 이 문자열은 길이가 N이고, 영어 소문자로만 이루어져 있으며, 길이는 100,000을 넘지 않는다. 둘째 줄에는 입력할 명령어의 개수 www.acmicpc.net 1. 문제 정의 ■ 1.1 리스트 반복자 편집기에는 커서(cursor)라는 것이 있는데 커서는 첫 번째 문자의 왼쪽, 마지막 문자의 오른쪽, 혹은 모든 연속된 두 문자 사이에 위치할 수 있다. 그리고 편집기가 지원하는 4가지 명령어로 커서의 위치를 좌우로 옮기거나 문자를 삽입 혹은 제거할 수 있다. 이러한 특성을 고려해보았을 때, 문장은 리스트(list), 커서는 반복자(iterator)로 적절하게 구현하면 위의 .. 2022. 2. 26. 백준 온라인 저지 | 1158번 요세푸스 문제 | C++ 백준 온라인 저지 | 1158번 요세푸스 문제 | C++ 1158번: 요세푸스 문제 첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 5,000) www.acmicpc.net 1. 문제 정의 ■ 1.1 요세푸스 순열 요세푸스 순열은 1부터 N까지 숫자에서 K번째 숫자를 순서대로 없애는 순열을 말한다. 예를 들어, (7, 3) 요세푸스 순열은 1부터 7까지의 숫자에서 3번째 숫자를 순서대로 없애는 {3, 6, 2, 7, 5, 1, 4}이다. ■ 1.2 리스트 요세푸스 알고리즘을 구현하려면 숫자를 넣고 빼내는 데 유용한 큐(queue) 혹은 리스트(list)를 사용하는 것이 적절하다. 나는 리스트를 사용하여 문제를 해결할 것이다. 요세푸스 알고리즘은 다음과 같이 두 가지 .. 2022. 2. 25. 이전 1 다음