https://www.acmicpc.net/problem/2606 2606번: 바이러스 첫째 줄에는 컴퓨터의 수가 주어진다. 컴퓨터의 수는 100 이하이고 각 컴퓨터에는 1번 부터 차례대로 번호가 매겨진다. 둘째 줄에는 네트워크 상에서 직접 연결되어 있는 컴퓨터 쌍의 수가 주어 www.acmicpc.net 전형적인 DFS/BFS 문제는 풀기 좀 쉽다고 들었는데, 무슨 의미인지 알 것 같다. # PYTHON CODE (1) - BFS import sys n = int(sys.stdin.readline()) m = int(sys.stdin.readline()) tree = [[] for _ in range(n + 1)] for _ in range(m): a, b = map(int, sys.stdin.read..
https://www.acmicpc.net/problem/5052 5052번: 전화번호 목록 첫째 줄에 테스트 케이스의 개수 t가 주어진다. (1 ≤ t ≤ 50) 각 테스트 케이스의 첫째 줄에는 전화번호의 수 n이 주어진다. (1 ≤ n ≤ 10000) 다음 n개의 줄에는 목록에 포함되어 있는 전화번호가 www.acmicpc.net 업로드하지 않은 정렬 알고리즘이 생각나서 다시 정렬로 회귀. 이상하게 실제 문제에서는 배운 알고리즘들을 쓸 기회도 없이 sort() 함수를 쓰게 되는 것 같다. 이러다 망각하면 억울할 것 같은데... 5052는 언젠가 프로그래머스에서 마주친 듯한 문제다. 골드4에 랭크되어 있어서 살짝 겁을 먹고 풀었지만, 알고 보니 은근 골드급 문제를 많이 풀어왔더라. 결론적으로 이문제는 ..
https://www.acmicpc.net/problem/10814 10814번: 나이순 정렬 온라인 저지에 가입한 사람들의 나이와 이름이 가입한 순서대로 주어진다. 이때, 회원들을 나이가 증가하는 순으로, 나이가 같으면 먼저 가입한 사람이 앞에 오는 순서로 정렬하는 프로그램을 www.acmicpc.net 풀이는 역시나 단순하다. 백준 저지에서 solved.ac 설정을 수정하면 문제별로 난이도가 표시되는데, 실버 수준의 문제들은 사실 그렇게 어렵게 느껴지지는 않는 것 같다. 문제는 시간 복잡도다. 문제에서 제한한 조건에 따라서 어떻게 풀지를 설계해야 하는데, 그 해석이 잘 안돼서 구현은 가능하지만 이 풀이가 문제가 요구하는 바에 부합하는지 판단을 내리는 게 조금 까다롭다. 해야지, 해야지 생각은 하는데 ..
https://www.acmicpc.net/problem/3190 3190번: 뱀 'Dummy' 라는 도스게임이 있다. 이 게임에는 뱀이 나와서 기어다니는데, 사과를 먹으면 뱀 길이가 늘어난다. 뱀이 이리저리 기어다니다가 벽 또는 자기자신의 몸과 부딪히면 게임이 끝난다. 게임 www.acmicpc.net 삼성 sw 역량 테스트에 기출 된 문제라고 한다. 괜한 긴장감에 정말 열심히 풀어보고자 했던 것 같다. 처음 문제 이해가 조금 힘들어서 구글링을 통해 문제 이해 정도만 도움을 받았다. 어제 새벽에 문제 해결에 성공했을 때 느낀 쾌감과는 대비되게 지금 생각해보니 그렇게 엄청난 문제는 또 아닌 것 같다. 오히려 코딩 공부에 대한 회의감이 생겨버렸는데, 지금 공부하는 방식이 상당히 잘못된 것 같다는 생각이 든..
https://www.acmicpc.net/problem/2164 2164번: 카드2 N장의 카드가 있다. 각각의 카드는 차례로 1부터 N까지의 번호가 붙어 있으며, 1번 카드가 제일 위에, N번 카드가 제일 아래인 상태로 순서대로 카드가 놓여 있다. 이제 다음과 같은 동작을 카드가 www.acmicpc.net 단순함 속에서도 배울 건 존재하기 마련이다. 문제 자체는 굉장히 단순하지만, 어째서인지 deque가 아닌 리스트로 접근하면 시간 초과가 발생한다. 풀이 자체에 큰 어려움을 느끼지는 않았지만 소개할 두 번째 풀이가 조금 감명 깊었다. 알고리즘에 수학이 필연적인 이유를 어렴풋이 느끼게 되었달까... # PYTHON CODE (1) - 리스트 매서드 실패 1 2 3 4 5 6 7 8 9 n = int(..