정리

백준 1339번: 단어 수학 본문

Programming/백준 BOJ

백준 1339번: 단어 수학

H.J.Park 2021. 1. 11. 06:21

백준 1339번: 단어 수학

 

1339번: 단어 수학

단어 수학 문제는 N개의 단어로 이루어져 있으며, 각 단어는 알파벳 대문자로만 이루어져 있다. 이때, 각 알파벳 대문자를 0부터 9까지의 숫자 중 하나로 바꿔서 N개의 수를 합하는 문제이다. 같은 알파벳은 같은 숫자로 바꿔야 하며, 두 개 이상의 알파벳이 같은 숫자로 바뀌어지면 안 된다.

www.acmicpc.net

 

백트래킹을 활용한 풀이도 있지만 그보다 덧셈식을 활용한 풀이가 더 좋다고 생각하여 덧셈식을 활용하여 풀었다

  • N = 2, GCF + ACDEB 와 같은 입력이 주어진다고 가정하자
  • 각 알파벳과 자릿수를 계산하면 ((G * 100) + (C * 10) + (F * 1)) + ((A * 10000) + (C * 1000) + (D * 100) + (E * 10) + (B * 1)) 와 같이 나타낼 수 있다
  • 계수를 알파벳에 따른 내림차순으로 정리하면 (A * 10000) + (C * 1010) + (D * 100) + (G * 100) + (C * 10) + (E * 10) + (B * 1) + (F * 1) 와 같이 나타낼 수 있다
  • 계수가 큰 알파벳부터 9부터 0까지 수를 부여하면 된다

아래는 파이썬 코드이다

 

'Programming > 백준 BOJ' 카테고리의 다른 글

백준 19699번: 소-난다!  (0) 2021.01.31
백준 1669번: 멍멍이 쓰다듬기  (0) 2021.01.13
백준 1251번: 단어 나누기  (0) 2021.01.11
백준 1654번: 랜선 자르기  (0) 2021.01.05
백준 1789번: 수들의 합  (0) 2020.12.25
Comments