[BOJ1148] 단어 만들기
Updated:
문제
- 3*3 표에 영문자 하나씩, 최대한 많은 영단어 만들기
- 한 글자당 최대 한 번만 사용, 단어 길이 4 ~ 9
- 표 정중앙에 있는 글자 반드시 사용
- 중앙에 어떤 수를 놓아야 퍼즐이 가장 쉬워지고, 어려워지는지 구하기
입력
- 사전 최대 20만 개
- 각 단어 4 ~ 9글자
- ’-‘ 사전 끝
- 퍼즐판 9개 영어 대문자로
- ’#’ 퍼즐 끝
출력
-
각 문제마다 정답의 개수를 가장 적게 하기 위해 정중앙에 놓아야 할 문자들과 그때의 정답 개수, 정답의 개수를 가장 많게 하기 위해 정중앙에 놓아야 할 문자들과 그 때의 정답 개수를 공백으로 구분하여 출력
-
한 개 이상의 문자가 답을 만족할 경우 문자들을 알파벳순으로 정렬하여 출력하며, 중복된 문자는 출력 금지
설계
- 사전에 해당하는 단어들의 각 알파벳 수를 dictionary에 저장
- 퍼즐판 알파벳 수를 words에 저장
- dictionary를 돌면서 words보다 알파벳 수가 적은 경우 조합 가능한 단어
- 조합 가능한 단어의 알파벳은 ret 배열에서 하나씩 증가
- 알파벳을 순회하며 ret배열을 기준으로 최소 최대 구하기
How I solved(click to github)
ref :
BOJ1148
Leave a comment