[BOJ16508] 전공책

Updated:

문제

  • 민호가 만들고 싶은 단어 제시
  • 여러 전공책이 있는데, 그 전공책의 알파벳을 이용해 단어를 만들기
  • 전공책은 가격이 있어서 가장 저렴한 조합으로 책 선택

입력

  • 민호가 만들고자 하는 문자열 T
  • 전공책 개수 n
  • n개의 줄에 책 가격, 책 제목 문자열

출력

  • 민호가 원하는 단어 T를 만들기 위해서 선택해야 하는 전공책의 가장 적은 가격의 합을 출력한다. 만약 단어를 만들 수 없다면 -1을 출력한다.

설계

  • 조합을 이용하여 책 선택
  • 책은 선택, 미선택 두 가지 방식으로 접근
  • 따라서 책이 담긴 배열 처음부터 끝까지 돌면서 각 상황에서 그 책 선택, 미선택에 따라 조합 생성
  • 선택한 책에서 나온 알파벳은 알파벳 배열에 추가
  • 마지막으로 알파벳 배열에서 각 알파벳 수와 만들고자하는 단어의 알파벳 수 비교해서 타당성 확인

피드백

  • 각 상황에서 선택할지 안 할지에 대한 로직을 짜는 것이 중요
  • 조합에 조금 더 익숙해질 필요가 있음

How I solved(click to github)


ref :
BOJ16508

Leave a comment