[C/C++] 백준 #2023 신기한 소수(수학)
N자리 소수중에서 하위자리를 빼나가도 소수가 되는 수들은 상당히 많습니다. 첫자리를 제외하고 나머지는 모두 홀수로 이루어져 있어야 하죠. 물론 5와 같이 10의 소인수인 수는 제외입니다. 이 문제를 풀기 위한 접근은 간단합니다. 1) 초기 시작수 2, 3, 5, 7을 리스트에 넣습니다. 2) 이곳에 1, 3, 7, 9를 붙여서 소수가 된다면 그 수를 리스트에 넣습니다. 3) N자리수가 될때까지 2)를 반복합니다. 이렇게 하면 손쉽게 결과를 출력할 수 있습니다. for 루프 쓸 때, 1, 3, 7, 9만 붙이면 되는데, 그냥 5도 같이 붙였습니다. 크게 성능 이슈가 있지는 않기 때문에, 문제 통과하는데에는 이상이 없었습니다. 제가 작성한 소스입니다 //------------------------------..
2023. 1. 19.
[C/C++] 백준 #2011 암호코드(동적 계획법)
영문 대문자로만 이루어진 암호가 있으면, 해당 영문자를 A는 1로 B는 2로 Z는 26으로 차례대로 숫자를 지정한다면, 숫자를 나열할 수 있습니다. 예를 들어서 BEAN은 B는 2, E는 5, A는 1, N은 14이므로 25114로 표현할 수 있죠. 하지만, Y = 25, K = 11, D = 4 이므로 YKD도 될 수 있죠. 숫자가 주어졌을 때, 그것을 영문자로 바꿀 수 있는 경우는 제한되어 있습니다. 일단 0을 제외한 한자리 숫자는 모두 영문으로 만들 수가 있겠죠. 두자리 숫자가 26을 초과한다면 이 경우에는 J 이상의 영문자로 만들 수가 없으므로 한자리 숫자로 해야 합니다. 그리고 바꿀 수 없는 경우도 있습니다. 304와 같은 숫자는 나올 수 있는 영문 단어가 없습니다. 30은 글자가 안 되고, 0..
2023. 1. 15.