내용으로 건너뛰기
테페리넷
사용자 도구
등록
로그인
사이트 도구
검색
도구
문서 보기
Fold/unfold all
역링크
미디어 관리자
사이트맵
등록
로그인
>
미디어 관리자
사이트맵
현재 위치:
테페리넷
»
Problem Solving
»
문제
»
백준 온라인 저지 (BOJ)
»
캬루
ps:problems:boj:31288
이 문서는 읽기 전용입니다. 원본을 볼 수는 있지만 바꿀 수는 없습니다. 문제가 있다고 생각하면 관리자에게 문의하세요.
====== 캬루 ====== ===== 풀이 ===== * 주어진 수에서 숫자 하나를 바꿔서 소수가 아닌 수로 만들어야 하는데, 이런 수를 n개를 만들어야 한다 * 방법이야 다양하겠지만, 쉽게 떠올릴수 있는 방법은, 모든 자릿수의 합이 3의 배수인 수는 3의 배수라는 점을 이용하는 것이다. * 어느 자리의 숫자를 바꿔도 모든 자릿수의 합이 3의 배수가 되도록 만들수 있으니까, 이 방법만으로 3의 배수를 n개 이상 만들수 있다. * 실수의 여지가 있는 것은, 만들어지는 수가 0 으로 시작하지 않도록 하는 부분과, p가 1자리 수일때는 3을 만들지 않도록 해야 하는 부분이다. 내 경우 후자의 처리는 모든 자릿수의 합이 9의 배수가 되게 만든다음, 약수는 3으로 써주는 방식으로 처리했다. ===== 코드 ===== <dkpr py> """Solution code for "BOJ 31288. 캬루". - Problem link: https://www.acmicpc.net/problem/31288 - Solution link: http://www.teferi.net/ps/problems/boj/31288 Tags: [ad hoc] """ import sys def main(): T = int(sys.stdin.readline()) for _ in range(T): N, P = sys.stdin.readline().split() # pylint: disable=unused-variable digit_sum = sum(int(c) for c in P) for i, c in enumerate(P): x = (int(c) - digit_sum) % 9 if x == 0: x = 9 print(f'{P[:i]}{x}{P[i+1:]} 3') if __name__ == '__main__': main() </dkpr> {{tag>BOJ ps:problems:boj:실버_2}}
ps/problems/boj/31288.txt
· 마지막으로 수정됨: 2024/02/15 08:21 저자
teferi
문서 도구
문서 보기
역링크
Fold/unfold all
맨 위로