[백준 / BOJ] 11729번 하노이 탑 이동 순서 (C++, Python)
◎ 자료구조와 알고리즘/백준(BOJ) 문제풀이2022. 4. 10. 21:39[백준 / BOJ] 11729번 하노이 탑 이동 순서 (C++, Python)

링크 : https://www.acmicpc.net/problem/11729 11729번: 하노이 탑 이동 순서 세 개의 장대가 있고 첫 번째 장대에는 반경이 서로 다른 n개의 원판이 쌓여 있다. 각 원판은 반경이 큰 순서대로 쌓여있다. 이제 수도승들이 다음 규칙에 따라 첫 번째 장대에서 세 번째 장대로 www.acmicpc.net 문제 문제 풀이 재귀로 풀지 않으면 접근 방식이 참 어려울 것 같은 문제다. 찬찬히 생각해보면, 이동 과정을 통째로 i) n-1개의 원판을 2번째 장대로 옮긴다. ii) 제일 밑에 있는 원판을 3번째 장대로 옮긴다. iii) 2번째 장대에 있는 원판들을 3번째 장대로 옮긴다. 라고 요약할 수 있다. ii)번째 과정을 생각해보자. 이는 1) 2번째 장대의 맨 마지막 원판을 제외..

[백준 / BOJ] 2869번 달팽이는 올라가고 싶다 (C++, Python)
◎ 자료구조와 알고리즘/백준(BOJ) 문제풀이2022. 2. 1. 21:19[백준 / BOJ] 2869번 달팽이는 올라가고 싶다 (C++, Python)

링크 : https://www.acmicpc.net/problem/2869 2869번: 달팽이는 올라가고 싶다 첫째 줄에 세 정수 A, B, V가 공백으로 구분되어서 주어진다. (1 ≤ B < A ≤ V ≤ 1,000,000,000) www.acmicpc.net 문제 문제 풀이 예제 2번 때문에 반복문으로 풀 시 무조건 시간 초과가 나는 문제이다. 이미 정상에 도달했으면 미끄러지지 않는 조건 때문에, 잘 생각하면 V - A가 최종적인 목표임을 알 수 있다. 또한 V - A 거리를 가기 위한 일수는 (V - A) / (A - B) 이며, 정상에 딱 도달하면 미끄러지지 않으니 % 연산자를 이용해 0이 나오면 +1을 하고, 아니라면 +2를 해준다. (기본적으로 1일부터 시작하기 때문에 +1이 들어간다.) C+..

[백준 / BOJ] 2292번 벌집 (C++, Python)
◎ 자료구조와 알고리즘/백준(BOJ) 문제풀이2022. 1. 18. 10:14[백준 / BOJ] 2292번 벌집 (C++, Python)

링크 : https://www.acmicpc.net/problem/2292 2292번: 벌집 위의 그림과 같이 육각형으로 이루어진 벌집이 있다. 그림에서 보는 바와 같이 중앙의 방 1부터 시작해서 이웃하는 방에 돌아가면서 1씩 증가하는 번호를 주소로 매길 수 있다. 숫자 N이 주어졌 www.acmicpc.net 문제 문제 풀이 가장 중앙 방, 즉 1번 레이어는 1, 2번 레이어부터 2~7, 3번 레이어는 8~19, 4번 레이어는 20~36.. 즉 6, 12, 18, 24의 등비수열대로 늘어나는 패턴을 확인할 수 있다. 이를 활용해 등비수열의 합을 구하고 늘어난 레이어를 출력해주면 된다. C++ 상세 풀이 더보기 void solution(int N) { int cnt = 1; int layer = 1; w..

[백준 / BOJ] 4673번 셀프 넘버 (C++, Python)
◎ 자료구조와 알고리즘/백준(BOJ) 문제풀이2021. 9. 6. 23:44[백준 / BOJ] 4673번 셀프 넘버 (C++, Python)

링크 : https://www.acmicpc.net/problem/4673 4673번: 셀프 넘버 셀프 넘버는 1949년 인도 수학자 D.R. Kaprekar가 이름 붙였다. 양의 정수 n에 대해서 d(n)을 n과 n의 각 자리수를 더하는 함수라고 정의하자. 예를 들어, d(75) = 75+7+5 = 87이다. 양의 정수 n이 주어졌을 때, www.acmicpc.net 문제 문제 풀이 문제가 살짝 이해가 가지 않아 처음에 많이 고생했던 문제다. 생성자? 셀프 넘버? 생성자가 없는 숫자를 어떻게 구하지? 결국 역으로 생각하는 수밖에 없었다. 일단 생성자가 있는 숫자를 1부터 10000까지 구하고, 없었던 숫자만 출력하는 식으로 해결했다. C++ 상세 풀이 더보기 int non_self_num(int num..

image