https://www.acmicpc.net/problem/2742 # 문제상황 보통 for문과 함께 자주 쓰이는 파이썬 내장 함수로 range가 있습니다. for i in range(3): 예를 들어, 위와 같은 코드는 반복문을 수행할 때마다 i의 값에 0부터 2까지의 숫자가 차례차례 들어가게 됩니다. 시작 숫자를 0이 아닌 다른 숫자로 설정하고 싶다면 아래와 같이 코드를 짜면 됩니다. for i in range(1, 3): 위 코드는 반복문을 수행할 때마다 i에 1부터 2까지의 숫자가 차례대로 들어가게 되는 것입니다. 그런데, 지금까지 보여준 예시들은 전부 숫자가 오름차순으로 1씩 증가하는 코드들인데요, 오름차순이 아니라 내림차순 코드도 range함수를 써서 작성할 수 있을까요? # 해결 바로 아래와 ..
https://www.acmicpc.net/problem/15552 # 문제상황 이 문제는 언뜻 보면 단순히 두 수를 입력받아 더하기만 하면 되는 매우 쉬운 문제로 보이지만, 시간 제한이 있어 평범한 방법으로 풀게 될 경우 시간초과가 뜨게 됩니다. 프로그래밍 언어에서 고급 언어들 중에서 '그나마' 제일 기계어와 가깝다는 C언어의 실행 속도는 매우 빠른 편이라, 아마 C언어로 이 문제를 풀게 될 경우 평소에 풀던대로 풀어도 시간초과가 안 뜰 것입니다. 하지만 우리는 파이썬으로 문제 풀이를 할 것이기 때문에, 문제에서도 권고한 대로 'input' 대신 'sys.stdin.readline'을 사용하여 시간 단축을 해보겠습니다. # 해결 import sys x = sys.stdin.readline() sys.s..
# 문제상황 테스트 케이스 T를 입력받은 후, 똑같은 수행(이 문제에서는 덧셈 연산)을 T번 반복해야되는 문제입니다. 앞으로 코딩테스트 문제를 풀다보면 지금과 같이 테스트 케이스 횟수를 입력받아야 되는 상황이 자주 등장할텐데요. 코드로 어떻게 짜는 것이 좋을까요? T = int(input()) while T: T -= 1 저는 맨 처음에는 위와 같은 코드를 생각했었는데요, 이것보다 좀 더 간단하고 널리 보편화된 방법이 있습니다. # 해결 코드 먼저 보겠습니다. T = int(input()) for _ in range(T): 위 코드와 같이 작성하면 테스트 케이스를 입력받는 첫 번째 행과, 테스트 케이스 만큼 반복을 진행해 줄 두 번째 행, 총 2줄만으로 표현할 수 있습니다. 이 코드를 더 줄일 수도 있습..
https://www.acmicpc.net/problem/1000 # 문제상황 1 파이썬은 C와 달리 띄어쓰기를 기준으로 입력을 나눠 받지 않습니다. 다시 말하자면 입력으로 다음과 같은 두 숫자가 주어졌을때, 입력1. 1 2 입력2. 1 2 C는 입력1과 입력2를 같은 입력이라고 받아들이지만 파이썬은 그렇지 않습니다. 입력1의 경우에는 '1'과 '2'라는 2개의 입력을 인식하고, 입력2의 경우에는 '1 2'라는 하나의 입력을 인식하게 되는 것입니다. # 해결 1 split이라는 함수를 활용합시다. split은 문자열을 '특정 문자'를 기준으로 나눈 뒤 리스트로 반환하는 함수입니다. 기준이 될 '특정 문자'는 괄호 안에 써넣어 줌으로써 지정해줄 수 있습니다. 괄호 안을 비워두면 모든 '공백 문자'를 기준으..