반응형
Notice
Recent Posts
Recent Comments
Link
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
Archives
Today
Total
11-07 11:40
관리 메뉴

ImJay

[파이썬/Python] 백준 4101번 크냐? 본문

Solved.ac - Python/Bronze V

[파이썬/Python] 백준 4101번 크냐?

ImJay 2022. 9. 27. 10:24
반응형

[파이썬/Python] 백준 4101번 크냐?

www.acmicpc.net/problem/4101

 

4101번: 크냐?

입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스는 한 줄로 이루어져 있으며, 두 정수가 주어진다. 두 수는 백만보다 작거나 같은 양의 정수이다. 입력의 마지막 줄에는 0이

www.acmicpc.net


문제

두 양의 정수가 주어졌을 때, 첫 번째 수가 두 번째 수보다 큰지 구하는 프로그램을 작성하시오.

코드

while True:
    n, m = map(int, input().split())
    if n == 0 and m == 0:
        break
    print("Yes") if n>m else print("No")

풀이

1. n, m 값을 입력 받습니다.

n, m = map(int, input().split())

 

2. 입력은 여러 개의 테스트 케이스로 이루어져 있으므로, while True 를 통해 무한루프를 돌려줍니다.

while True:
    n, m = map(int, input().split())

 

3. 입력의 마지막 줄에는 0이 두 개 주어지므로, n과 m이 0과 일치할 경우 break 문을 통해 루프를 탈출시켜줍니다.

if n == 0 and m == 0:
    break

 

4. 삼항연산자를 통해 n이 m보다 클 경우 Yes를, 작거나 같을 경우 No를 출력합니다.

    print("Yes") if n>m else print("No")
  • 삼항 연산자(Ternary operators) : (참인 경우 값) if (조건) else (거짓인 경우 값)

 

    n, m = map(int, input().split())
    if n == 0 and m == 0:
        break
    print("Yes") if n>m else print("No")
  • if 문을 입출력 중간에 넣은 이유는 입력의 마지막으로 0 0이 주어질 경우 아무것도 출력하지 않기 때문입니다.

 

느낀 점

번외로 python에서 is와 ==의 차이가 무엇인지 알게 되었다.

평소 파이썬에서 습관처럼 is를 사용하다가 이번 문제에서 컴파일 에러가 났었는데, 

is는 변수의 Object(객체)가 같을 때 True를 리턴하기 때문에,

즉 object 끼리는 크고 작음을 비교할 수 없기 때문에

변수의 Value(값)이 같을 때 True를 리턴해주는 == 연산자를 사용해야 했다.

 

반응형
Comments