-
백준(BOJ) 4811번 알약알고리즘 풀이/백준(Boj) 2019. 9. 16. 03:01
문제 : https://www.acmicpc.net/problem/4811
문제70세 박종수 할아버지는 매일 매일 약 반알을 먹는다. 손녀 선영이는 종수 할아버지에게 약이 N개 담긴 병을 선물로 주었다.
첫째 날에 종수는 병에서 약 하나를 꺼낸다. 그 다음, 그 약을 반으로 쪼개서 한 조각은 먹고, 다른 조각은 다시 병에 넣는다.
다음 날부터 종수는 병에서 약을 하나 꺼낸다. (약은 한 조각 전체 일 수도 있고, 쪼갠 반 조각 일 수도 있다) 반 조각이라면 그 약을 먹고, 아니라면 반을 쪼개서 한 조각을 먹고, 다른 조각은 다시 병에 넣는다.
종수는 손녀에게 한 조각을 꺼낸 날에는 W를, 반 조각을 꺼낸 날에는 H 보낸다. 손녀는 할아버지에게 받은 문자를 종이에 기록해 놓는다. 총 2N일이 지나면 길이가 2N인 문자열이 만들어지게 된다. 이때, 가능한 서로 다른 문자열의 개수는 총 몇 개일까?
풀이 :
알약이 2개가 있다면 한알 2개와 한알1개 반알1개가 있을때는 다른 경우이기에 한알과 반알 각각으로 2차원 배열을 만들어 주자.
재귀호출의 경우는 하나는 한개를 빼고 반개를 더해주는 경우 나머지 하나는 반개를 빼는 경우이다.
코드 ( C ++ )
'알고리즘 풀이 > 백준(Boj)' 카테고리의 다른 글
백준(BOJ) 5213번 과외맨 (31) 2019.09.18 백준(BOJ) 14500번 테트로미노 (31) 2019.09.16 백준(BOJ) 3190번 뱀 (31) 2019.09.15 백준(BOJ) 15686번 치킨 배달 (0) 2019.09.12 백준(BOJ) 17140번 이차원 배열과 연산 (0) 2019.09.11