썸네일 while_10951 문제 출처: https://www.acmicpc.net/problem/10951 10951번: A+B - 4 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오. www.acmicpc.net 간단한 문제지만, EOF의 개념을 모를 경우 틀리는 문제이기 때문에 백준 풀이모음에 작성하게 되었다. EOF란 파일의 끝을 의미하며, EOF를 만나면 특정 값을 리턴하도록 되어있다. 즉, 테스트 케이스가 없는 10951번 문제같은 경우에 파일의 끝에 도달했을 경우에 매크로로 정해져있는 값이 리턴되며 루프를 빠져나오게 되는 것이다. #include using namespace std; int main() { //10951번 int A, B; while (cin >> A >> B) { cout A..
썸네일 _1002 문제 출처: https://www.acmicpc.net/problem/1002 1002번: 터렛 각 테스트 케이스마다 류재명이 있을 수 있는 위치의 수를 출력한다. 만약 류재명이 있을 수 있는 위치의 개수가 무한대일 경우에는 -1을 출력한다. www.acmicpc.net 케이스는 총 5가지로, 그 중 3개를 그리면 아래와 같다. [1]번 터렛의 류재명까지의 거리는 ro이고, 문제에서 주어진 r1과 같다. 이 범위를 그리면 원이 나온다. 원을 사용하는 이유는, 저 원이 [1]번 터렛의 정보로만 알 수 있는 류재명이 있을 경우의 수를 모아둔 집합이기 때문이다. 같은 논리로 [2]번 터렛에서의 거리는 rt이고, 문제에서 주어진 r2와 같다. 두 집합을 교집합 시키면 3가지 경우가 나오는데, 수학 관련 과목에서..
썸네일 _10871 문제 출처: https://www.acmicpc.net/problem/10871 10871번: X보다 작은 수 첫째 줄에 N과 X가 주어진다. (1 ≤ N, X ≤ 10,000) 둘째 줄에 수열 A를 이루는 정수 N개가 주어진다. 주어지는 정수는 모두 1보다 크거나 같고, 10,000보다 작거나 같은 정수이다. www.acmicpc.net 매우 간단한 기초 문제다. 루프(loop)를 돌려 N개 만큼 입력받으면서, 동시에 X보다 작은 수면 출력시켜주면 된다. 따로 배열을 선언할 필요가 없다. (입력과 출력 스트림을 각기 검사하므로) #include using namespace std; int main() { int N, X, V; cin >> N >> X; for (int i = 0; i < N; i++)..
썸네일 Brute Force_1436 문제 출처: https://www.acmicpc.net/problem/1436 1436번: 영화감독 숌 666은 종말을 나타내는 숫자라고 한다. 따라서, 많은 블록버스터 영화에서는 666이 들어간 제목을 많이 사용한다. 영화감독 숌은 세상의 종말 이라는 시리즈 영화의 감독이다. 조지 루카스는 스타 www.acmicpc.net 666이 들어간 string을 찾는 '탐색' 알고리즘이다. 무작정 시도해보는 브루트포스(Brute Force) 방식으로 풀 수 있는 문제다. 자세히 알고리즘을 설명해보면, 숫자를 문자열로 하나씩 변환해가며 '666'이 들어갔다면 순서 번호를 하나씩 증가시키고, 입력받은 N과 순서 번호가 같아졌을 경우 해당 숫자를 return 하는 방식으로 구현할 수 있다. 주의할 것은, 666, 1..
썸네일 _2775 문제출처: https://www.acmicpc.net/problem/2775 2775번: 부녀회장이 될테야 첫 번째 줄에 Test case의 수 T가 주어진다. 그리고 각각의 케이스마다 입력으로 첫 번째 줄에 정수 k, 두 번째 줄에 정수 n이 주어진다. (1
썸네일 recursive_11729 문제 출처: https://www.acmicpc.net/problem/11729 11729번: 하노이 탑 이동 순서 세 개의 장대가 있고 첫 번째 장대에는 반경이 서로 다른 n개의 원판이 쌓여 있다. 각 원판은 반경이 큰 순서대로 쌓여있다. 이제 수도승들이 다음 규칙에 따라 첫 번째 장대에서 세 번째 장대로 www.acmicpc.net void hanoi(int N, int from, int by, int to){ if(N==1){ printf("%d %d", from, to); } else { hanoi(N-1, from, by, to); printf("%d %d", from, to); hanoi(N-1, to, from, by); } } C++로 구현한 하노이 탑 알고리즘이다. 간단히 말로 설명하면 ..