Computer Science/알고리즘 문제

    [백준] 1107번 리모컨, 파이썬 문제 풀이

    문제 백준 1107번 리모컨 문제를 해결했습니다. https://www.acmicpc.net/problem/1107 1107번: 리모컨 첫째 줄에 수빈이가 이동하려고 하는 채널 N (0 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 고장난 버튼의 개수 M (0 ≤ M ≤ 10)이 주어진다. 고장난 버튼이 있는 경우에는 셋째 줄에는 고장난 버튼 www.acmicpc.net 문제 수빈이는 TV를 보고 있다. 수빈이는 채널을 돌리려고 했지만, 버튼을 너무 세게 누르는 바람에, 일부 숫자 버튼이 고장났다. 리모컨에는 버튼이 0부터 9까지 숫자, +와 -가 있다. +를 누르면 현재 보고있는 채널에서 +1된 채널로 이동하고, -를 누르면 -1된 채널로 이동한다. 채널 0에서 -를 누른 경우에는 채널이 변하지 ..

    [백준] 1003번 피보나치 함수, 파이썬 문제 풀이

    문제 백준 1003번 피보나치 함수를 진행했을 때 0, 1이 몇 번 출력되는지 세는 문제를 해결했습니다. https://www.acmicpc.net/problem/1003 1003번: 피보나치 함수 각 테스트 케이스마다 0이 출력되는 횟수와 1이 출력되는 횟수를 공백으로 구분해서 출력한다. www.acmicpc.net 문제 다음 소스는 N번째 피보나치 수를 구하는 C++ 함수이다. int fibonacci(int n) { if (n == 0) { printf("0"); return 0; } else if (n == 1) { printf("1"); return 1; } else { return fibonacci(n‐1) + fibonacci(n‐2); } } fibonacci(3)을 호출하면 다음과 같은 ..

    [백준] 11724번 연결 요소의 개수, 파이썬 문제풀이

    문제 백준 11724번 연결 요소의 개수를 해결했습니다. 노드와 간선의 수가 주어지면 연결되어 있는 연결 요소의 개수를 찾는 문제입니다. DFS를 활용해서 해결했습니다. https://www.acmicpc.net/problem/11724 11724번: 연결 요소의 개수 첫째 줄에 정점의 개수 N과 간선의 개수 M이 주어진다. (1 ≤ N ≤ 1,000, 0 ≤ M ≤ N×(N-1)/2) 둘째 줄부터 M개의 줄에 간선의 양 끝점 u와 v가 주어진다. (1 ≤ u, v ≤ N, u ≠ v) 같은 간선은 한 번만 주 www.acmicpc.net 문제 방향 없는 그래프가 주어졌을 때, 연결 요소 (Connected Component)의 개수를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 정점의 개수 N과 간선..

    [백준] 7569번 토마토, 파이썬 문제 풀이

    문제 백준 7569번 BFS를 활용해 토마토가 익는 시간을 구하는 문제를 해결했습니다. https://www.acmicpc.net/problem/7569 7569번: 토마토 첫 줄에는 상자의 크기를 나타내는 두 정수 M,N과 쌓아올려지는 상자의 수를 나타내는 H가 주어진다. M은 상자의 가로 칸의 수, N은 상자의 세로 칸의 수를 나타낸다. 단, 2 ≤ M ≤ 100, 2 ≤ N ≤ 100, www.acmicpc.net 이와 유사한 문제로 7576번 토마토 문제도 있습니다. 7569번과는 토마토를 남아놓는 상자를 쌓아놓는 것(7569번), 1층밖에 없는지(7576번)가 다릅니다. 상자의 구조가 2차원인지, 3차원인지가 다릅니다. 이번 포스팅에서는 상자를 쌓아놓는 7569번의 문제 풀이를 하도록 하겠습니다..