유형: 그리디 문제: https://www.acmicpc.net/problem/6550 6550번: 부분 문자열 입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스는 한 줄로 이루어져 있으며, 문자열 s 와 t가 빈칸을 사이에 두고 들어온다. s와 t의 길이는 10만을 넘지 않는다. www.acmicpc.net 입출력 방식 입력받는 개수가 몇개인지 모르는 경우이다. 이런 경우를 입력받는 방법은 여러 가지가 있는 것 같다. 이 글에 정리가 잘 되어있다! https://scarlettb.tistory.com/69 가장 직관적인 방법은 while문 조건에 cin 또는 scanf를 넣는 것이다. 다만 scanf를 넣을 땐 scanf(...) != EOF 형식으로 써야하는 것 같다. do whil..
유형: 그리디 문제: https://www.acmicpc.net/problem/2891 2891번: 카약과 강풍 첫째 줄에 팀의 수 N, 카약이 손상된 팀의 수 S, 카약을 하나 더 가져온 팀의 수 R이 주어진다. (2 ≤ N ≤ 10, 1 ≤ S, R ≤ N) 둘째 줄에는 카약이 손상된 팀의 번호가 주어진다. 팀 번호는 중복되지 않 www.acmicpc.net 풀이 문제 기준 인덱스 시작이 0인지 1인지 잘 봐야한다. 이 문제는 1부터 시작하기에 벡터에 넣을 때 1씩 빼주었다. 벡터는 N개의 원소의 값을 모두 1로 초기화하고, 없는 팀은 -1 연산, 여분 팀은 +1 연산을 한다. 그후 벡터의 원소를 하나씩 돌면서, 여분 팀을 기준으로 연산한다. 여분 팀의 앞팀이 없는 경우에는 앞팀을 먼저 빌려주고 끝난..
유형: 그래프, BFS 문제: https://www.acmicpc.net/problem/7562 7562번: 나이트의 이동 체스판 위에 한 나이트가 놓여져 있다. 나이트가 한 번에 이동할 수 있는 칸은 아래 그림에 나와있다. 나이트가 이동하려고 하는 칸이 주어진다. 나이트는 몇 번 움직이면 이 칸으로 이동할 수 www.acmicpc.net 풀이 1 처음 생각해낸 풀이. 큐에 좌표뿐만 아니라 카운트 수도 저장했다. 초기 코드는 메모리 초과로 실패했는데, 방문처리를 큐에서 pop할 때가 아니라 파생위치를 큐에 넣을 때 해줘야한다. 왜냐하면, 큐에서 pop할 때 방문처리를 하면 큐에 있는 원소들은 전부 방문하지 않았다는 전제가 깔린다. 따라서 큐에 좌표가 중복으로 들어갈 수도 있어서, 불필요한 탐색이 많아진다..