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

[CodeUp][Python] 1261번 : First Special Judge (Test)

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

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

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

 

First Special Judge (Test)

10개의 수 중 5의 배수가 있으면 그 중 하나만 출력하고, 없다면 0을 출력한다.

codeup.kr

 

 

 

주의해야 할 점

1. map, split, list를 사용하는 입력 방식

실수나 정수인 여러 값들이 입력값일 때,

split 메서드를 사용해 공백이나 어떤 문자를 기준으로 입력값을 여러 값들로 분리하고,

map 내장 함수로 각각의 값들을 int형이나 float형으로 정수, 실수 자료형으로 변환하는 한 뒤,

list로 묶어 리스트 변수에 넣어주는 기법은 매우 많이 쓰입니다.

코드 이해부터 하고 나면 다른 문제에서도 외운 듯이 사용해봅시다.

num_list = list(map(int, sys.stdin.readline().split()))


2. 배수를 판별하는 방법

어떤 한 수가 다른 한 수의 배수인지를 판별할 때는 

나머지를 반환하는 연산자 '%'를 사용합니다.

숫자를 다른 한 숫자로 나누었을 때 나머지가 0이라면 두 숫자는 배수 관계입니다.

나머지 연산자는 이 기법뿐만 아니라 정말 많이 쓰이니 꼭 기억합시다.

 

3. for ~ else 문법

파이썬에서는 특이하게도 if ~ else뿐만 아니라 for ~ else라는 문법도 있습니다.

for 반복문을 끝까지 순회하면 else문의 코드를 실행시키는 문법입니다.

for ~ else가 속도가 느리다라는 글을 어디선가 읽기도 했는데 저는 아직 속도 면에서는 잘 모르겠습니다.

알고 있으면 매우 편하게 풀 수 있는 문제들이 많으니 한 번 공부해보세요.

 

 

예제 설명

1. 첫 번째 예제

- 입력

1 2 3 4 5 6 7 8 9 10

 

- 출력

5

 

- 설명

입력한 10개의 자연수들은 1, 2, 3, 4, 5, 6, 7, 8, 9, 10입니다.

10개의 수 중 5의 배수는 5, 10이므로 그 중 하나인 5를 출력합니다.

(10을 출력해도 정답입니다.)

 

 

생각한 풀이 과정

10개의 자연수들을 공백으로 구분해 입력합니다.

 

입력한 10개의 자연수들을 하나씩 반복해봅니다.

현재 자연수가 5의 배수라면, 즉, 현재 자연수를 5로 나누었을 때 나머지가 0이라면, 

현재 자연수를 출력하고 반복문을 탈출합니다.

만약, 10개의 자연수들을 끝까지 반복했는데 5의 배수인 자연수가 하나도 없다면,

0을 출력합니다.

 

 

제출한 파이썬 코드

# readline을 사용하기 위해 import합니다.
from sys import stdin


# 10개의 자연수들을 공백으로 구분해 입력합니다.
# 각각 int형으로 변환하고, 리스트 변수에 넣어줍니다.
ten_nums = list(map(int, stdin.readline().split()))

# ten_nums에 있는 숫자들을 하나씩 반복해봅니다.
for num in ten_nums:
    # 현재 숫자가 5의 배수라면, 즉, 현재 숫자를 5로 나누었을 때 나머지가 0이라면
    if num % 5 == 0:
        # 현재 숫자를 출력합니다.
        print(num)
        # 5의 배수인 숫자를 하나 출력했으므로 반복문을 탈출합니다.
        break
# 반복문을 끝까지 순회했다면
else:
    # 10개의 자연수들 중 5의 배수가 없었으므로, 0을 출력합니다.
    print(0)

 

 

제출 결과

CodeUp 1261번 : First Special Judge (Test)에서 코드 제출 결과
CodeUp 1261번 : First Special Judge (Test)에서 코드 제출 결과

 

 

 

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

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

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

반응형

댓글