본문 바로가기

Python37

[Python] input()와 sys.stdin.readline()의 차이가 뭘까? 백준으로 파이썬 알고리즘 연습을 하다가 sys.stdin.readline()이라는 것을 발견했다. 당연히 입력을 받을 때는 input()만 사용을 했었는데 input()을 사용하면 시간 초과로 틀렸다는 메세지가 나오는 것이었다. 알아보니까 input()을 사용하지 말고 sys.stdin.readline()을 사용해야 한다고 하더라. 그래서 이번에 input() 대신 사용할 수 있는 sys.stdin.readline()에 대해서 좀 더 자세히 알아보고자 한다. input() 대신 sys.stdin.readline()을 사용하는 이유가 무엇일까? 우리가 input()을 사용해서 문제를 풀다보면 시간 초과로 인해서 오답으로 되는 경우가 있다. 특히 반복문 안에 input()을 사용하게 되면 시간 초과가 종종 .. 2023. 2. 4.
[Python] 백준 문제 10171번: 고양이 https://www.acmicpc.net/problem/10171 10171번: 고양이 아래 예제와 같이 고양이를 출력하시오. www.acmicpc.net 문제 10171번: 고양이 1단계 12번째 문제이다. 풀이 과정 그냥 단순히 고양이를 출력해내는 문제이다. print 함수를 이용하면 되는데 문제는 \(역슬래시)를 나타내기 위해서는 \\형태로 사용해야 된다는 거다. 그 외에는 문자열이기 때문에 ""를 이용해서 표시해주면 된다. 정리하면 아래와 같다. 또 다른 풀이 소스 코드를 한 줄로 만들 수도 있다. print 내의 문자열을 줄바꿈할 때는 \n을 이용하면 된다. 마찬가지로 작성해보면 아래와 같다. 2023. 2. 4.
[Python] 백준 문제 2588번: 곱셈 https://www.acmicpc.net/problem/2588 2588번: 곱셈 첫째 줄부터 넷째 줄까지 차례대로 (3), (4), (5), (6)에 들어갈 값을 출력한다. www.acmicpc.net 문제 2588번: 곱셈 1단계 11번째 문제이다. 풀이 과정 일단 두 수를 각각 input함수를 이용해서 받는다. 이때 문자열로 받기 위해 int를 사용하지 않는다. Num1=input() Num2=input() 이제 (3)에 해당하는 수부터 구해보자 Num1과 Num2의 일의자리 숫자를 곱하면 된다. 이때 Num2의 일의자리 숫자는 Num[-1]로 구할 수 있다. print(int(Num1)*int(Num2[-1])) 비슷한 방법으로 (4)와 (5)에 해당하는 수를 구해줄 수 있다. (4)에는 Num.. 2023. 2. 4.
[Python] 백준 문제 10430번: 나머지 https://www.acmicpc.net/problem/10430 10430번: 나머지 첫째 줄에 A, B, C가 순서대로 주어진다. (2 ≤ A, B, C ≤ 10000) www.acmicpc.net 문제 10430번: 나머지 1단계 10번째 문제이다. 풀이 과정 일단 A, B, C에 숫자를 입력해야되므로 input 함수를 사용하자. A,B,C=map(int,input().split()) 그 다음에 (A+B)%C, ((A%C) + (B%C))%C, (A*B)%C, ((A%C) × (B%C))%C 를 각각 print하면 된다. print((A+B)%C) print(((A%C)+(B%C))%C) print((A*B)%C) print(((A%C)*(B%C))%C) 소스코드를 정리하여 작성하면 아래와 같다. 2023. 2. 4.
[Python] 백준 문제 3003번: 킹, 퀸, 룩, 비숍, 나이트, 폰 https://www.acmicpc.net/problem/3003 3003번: 킹, 퀸, 룩, 비숍, 나이트, 폰 첫째 줄에 동혁이가 찾은 흰색 킹, 퀸, 룩, 비숍, 나이트, 폰의 개수가 주어진다. 이 값은 0보다 크거나 같고 10보다 작거나 같은 정수이다. www.acmicpc.net 문제 3003번: 킹, 퀸, 룩, 비숍, 나이트, 폰 이번 문제는 1단계 9번째 문제이다. 풀이 과정 6개의 숫자가 주어지고 각각의 숫자는 킹, 퀸, 룩, 비숍, 나이트, 폰의 개수에 해당한다. 체스에서 필요한 피스는 킹 1개, 퀸 1개, 룩 2개, 비숍 2개, 나이트 2개, 폰 8개이므로 각각의 숫자를 받아서 이 숫자들을 빼면 된다. 일단 6개의 숫자를 각각 A, B, C, D ,E ,F로 받자 이때 input 함수를.. 2023. 2. 3.
[Python] 백준 문제 18108번: 1998년생인 내가 태국에서는 2541년생?! https://www.acmicpc.net/problem/18108 18108번: 1998년생인 내가 태국에서는 2541년생?! ICPC Bangkok Regional에 참가하기 위해 수완나품 국제공항에 막 도착한 팀 레드시프트 일행은 눈을 믿을 수 없었다. 공항의 대형 스크린에 올해가 2562년이라고 적혀 있던 것이었다. 불교 국가인 태국 www.acmicpc.net 문제 18108번: 1998년생인 내가 태국에서는 2541년생?! 1단계 8번째 문제이다. 풀이과정 불기 연도를 서기 연도로 바꾸는 문제이다. 일단 불기 연도를 input으로 받는다. 그리고 정수로 변환한 뒤 둘의 차이인 543을 빼주고 print 해주면 답이다. 소스코드를 작성하면 다음과 같다. 2023. 2. 3.