본문 바로가기
알고리즘/CodeUp PS

[CodeUp][Python] 1292번 : 범인을 잡아라 1

by 빛밤하늘 2021. 9. 26.
반응형

밑의 링크는 CodeUp에서의 문제 링크입니다.

문제는 링크를 통해서 직접 봐주시길 바랍니다.

 

범인을 잡아라 1

프로그램의 조건에 따라 “$suspect$” 또는 “$citizen$”을 출력한다.

codeup.kr

 

 

 

주의해야 할 점

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')

 

 

제출 결과

CodeUp 1291번 : 바이러스 백신에서 코드 제출 결과
CodeUp 1291번 : 바이러스 백신에서 코드 제출 결과

 

 

 

※ 궁금한 부분, 이상한 점 및 오타는 댓글에 부탁드립니다.

※ 더 효율적이고 빠른 정답을 환영합니다.

※ 공감 버튼과 구독 버튼도 잊지 말고 꾹 눌러주시면 감사하겠습니다~👍👍

반응형

댓글