반응형
밑의 링크는 CodeUp에서의 문제 링크입니다.
문제는 링크를 통해서 직접 봐주시길 바랍니다.
주의해야 할 점
1. readline만 사용해서 입력할 때
readline을 사용해서 입력할 때는 맨 끝에 \n이 붙어서 입력됩니다.
입력값을 int나 float 같이 숫자형 처리를 하지 않고, 문자열 형태 그대로 쓴다면
대부분의 문제에서는 맨 끝의 \n을 떼어주기 위해 rstrip을 사용해야 합니다.
string = sys.stdin.readline().rstrip()
예제 설명
1. 첫 번째 예제
- 입력
1234567891
- 출력
suspect
- 설명
도둑으로 의심되는 사람의 10자리 숫자 DNA 샘플은 1234567891입니다.
각 자리 숫자를 모두 더하면 46입니다.
46을 7로 나눈 나머지는 4이므로 도둑의 DNA 특징을 나타냅니다.
따라서 문자열 'suspect'를 출력합니다.
생각한 풀이 과정
도둑으로 의심되는 사람의 10자리 숫자 DNA 샘플을 입력합니다.
한 자리 숫자씩 더해나갈 것이므로 따로 int형으로 변환은 하지 않고,
rstrip으로 맨 끝의 \n만 떼어줍니다.
suspect_dna = stdin.readline().rstrip()
도둑으로 의심되는 사람의 DNA의 각 숫자의 합을 저장할 변수를 선언합니다.
dna_sum = 0
DNA의 한 자리 숫자씩 반복해보면서 더해나갑니다.
for num in suspect_dna:
dna_sum += int(num)
DNA 숫자의 각 자리 숫자 합을 7로 나누었을 때 나머지가 4라면 도둑이라는 결과 'suspect',
그렇지 않다면 'citizen'을 출력합니다.
if dna_sum % 7 == 4:
print('suspect')
else:
print('citizen')
제출한 파이썬 코드
# readline을 사용하기 위해 import합니다.
from sys import stdin
# 도둑으로 의심되는 사람의 DNA를 입력합니다.
# 맨 끝의 \n은 떼어줍니다.
suspect_dna = stdin.readline().rstrip()
# 도둑으로 의심되는 사람의 DNA의 각 자리 숫자의 합을 저장할 변수를 선언합니다.
# 0으로 초기화합니다.
dna_sum = 0
# DNA의 각 자리 숫자를 하나씩 반복해봅니다.
for num in suspect_dna:
# dna_sum에 현재 자리의 숫자를 더해줍니다.
dna_sum += int(num)
# dna_sum의 값을 7로 나누었을 때 나머지가 4라면
if dna_sum % 7 == 4:
# 도둑이므로 문자열 'suspect'를 출력합니다.
print('suspect')
# 그렇지 않다면
else:
# 도둑이 아니므로 문자열 'citizen'을 출력합니다.
print('citizen')
제출 결과
※ 궁금한 부분, 이상한 점 및 오타는 댓글에 부탁드립니다.
※ 더 효율적이고 빠른 정답을 환영합니다.
※ 공감 버튼❤과 구독 버튼도 잊지 말고 꾹 눌러주시면 감사하겠습니다~👍👍
반응형
댓글