안녕하세요. 지난 포스팅의 BOJ 2577번 : 숫자의 개수에서는 1차원 배열을 이용하여 문제를 해결해보았습니다. 이번에도 동일한 문제를 풀어보도록 하죠. 핵심 포인트 반복문 1차원 배열 : 리스트 자료형 제출 코드 numbers = [int(input()) for _ in range(10)] count = [0] * 42 for number in numbers : if count[number % 42] == 0 : count[number % 42] += 1 print(sum(count)) 해설 문제의 입력은 한 줄에 한 개씩 숫자를 입력받습니다. 따라서, 반복문을 이용해서 하나 씩 입력을 받은 뒤 이를 숫자 배열에 담아주면 되겠죠. 파이썬에서는 이러한 리스트를 만드는 데 더욱 짧은 코드를 만들 수 있게..
안녕하세요. 지난 포스팅의 BOJ 2562번 : 최댓값에서는 굳이 1차원 배열을 사용하지 않고 문제를 풀어보았습니다. 오늘은 1차원 배열을 적용해서 다른 문제를 풀어보도록 하겠습니다. 핵심 포인트 반복문 1차원 배열 : 리스트 자료형 제출 코드 number = int(input()) * int(input()) * int(input()) count = [0] * 10 while True : count[number % 10] += 1 number //= 10 if number == 0 : for i in count : print(i) break 해설 기본적으로 입력은 한 줄에 한 개씩 총 3개의 숫자를 입력받습니다. 하지만, 저희가 궁극적으로 필요한 것은 3개의 숫자의 곱셈이기 때문에 int(input())..
안녕하세요. 지난 포스팅의 BOJ 10818번 : 최소, 최대에서는 파이썬 1차원 배열인 리스트 자료형의 내장함수인 max 함수와 min 함수를 이용해서 문제를 풀어보았습니다. 오늘도 역시 최댓값을 출력하는 문제이지만 다른 점은 항상 9개의 숫자를 받는 다는 점과 최댓값이 몇 번째로 입력받았는지까지 출력해야합니다. 핵심 포인트 반복문 제출 코드 max_idx = 0 max_value = 0 for idx in range(9) : tmp = int(input()) if tmp >= max_value : max_value = tmp max_idx = idx + 1 print(max_value) print(max_idx) 해설 해당 문제는 1차원 배열 파트에 들어가있긴 하지만 리스트 자료형을 사용하지 않고도 ..
안녕하세요. 지난 포스팅의 BOJ 1110번 : 더하기 사이클에서는 반복문과 조건문을 활용하여 복잡한 구현문제를 풀어보았습니다. 오늘부터는 1차원 배열과 관련된 문제를 풀어보도록 하겠습니다. 핵심 포인트 반복문 1차원 배열 : 리스트 자료형 min & max 함수 파이썬에서 1차원 배열은 리스트 자료형으로 구현될 수 있습니다. 이번 문제는 숫자 배열을 입력받았을 때 최소값과 최대값을 순서대로 출력하는 것입니다. 파이썬에서는 리스트 내의 최소값과 최대값을 쉽게 찾을 수 있는 min(iterable) 함수와 max(iterable) 함수를 제공해주고 있습니다. 따라서, 저희는 이 함수들을 이용해서 빠르게 문제를 풀어보도록 하겠습니다. N = int(input()) numbers = list(map(int, ..
안녕하세요. 지난 포스팅의 BOJ 10951번 : A + B - 4에서는 while문과 예외처리 구문(try ~ except ~)를 이용해서 문제를 풀어보았습니다. 오늘은 반복문을 중심으로 하는 마지막 문제를 풀어보도록 하겠습니다. 핵심 포인트 반복문 : while문 조건문 일단, 문제의 예제를 통해 생각해보도록 하겠습니다. 26이 입력된다고 가정하죠. 그러면 아래의 과정으로 새로운 숫자가 만들어집니다. 1. 새로운 수의 십의 자리 = 26의 일의 자리 = 6 2. 새로운 수의 일의 자리 = 26의 십의 자리 + 26의 일의 자리 = 6 + 2 = 8 따라서, 새로운 수는 68이 됩니다. 하지만 28 $\neq$ 68이기 때문에 한번 더 해보도록 하죠. 1. 새로운 수의 십의 자리 = 68의 일의 자리 ..
안녕하세요. 지난 포스팅의 BOJ 10952번 : A + B - 5에서는 while문과 조건문을 함께 사용하여 문제를 풀어보았습니다. 오늘도 while문을 이용하지만 try ~ except ~ 구문을 활용하여 문제를 풀어보도록 하겠습니다. 핵심 포인트 반복문 : while문 예외처리 구문 : try ~ except ~ 예외처리는 프로그래밍에 있어서 굉장히 중요한 작업입니다. 어떤 문제가 생겼을 때 갑작스럽게 프로그램이 죽는 것과 예외를 처리하여 적절한 오류코드를 반환하는 것에는 큰 차이가 있기 때문이죠. 오늘은 가장 간단한 예외처리 구문인 try ~ except ~에 대해서 알아보고 문제를 풀어보도록 하겠습니다. try : 명령어1 except 에러 종류 : # 코드 실행 시 오류가 발생했을 때 자동으로..
안녕하세요. 지난 포스팅의 BOJ 10871번 : X보다 작은 수에서는 반복문과 조건문을 함께 이용해서 문제를 풀어보았습니다. 오늘도 지난 문제와 동일하게 반복문과 조건문을 함께 활용하지만 while문을 이용해서 문제를 풀어보도록 하겠습니다. 핵심 포인트 반복문 : while문 조건문 기본적으로 for문은 반복의 끝이 언제 들어올 지 정해진 경우에 적용합니다. 예를 들어, N번의 반복을 한다고 명시가 되어 있는 경우죠. 하지만, 어떤 문제는 반복의 끝이 언제인지 알 수 없는 경우가 많습니다. 어쩌면 특정 조건을 만족해야만 반복문을 탈출할 수 있습니다. while문은 이와 같은 경우에 활용할 수 있습니다. while True : A, B = map(int, input().split()) if A == B ..
안녕하세요. 지난 포스팅의 BOJ 2439번 : 별 찍기 - 2에서는 예제 출력의 패턴을 분석한 뒤 반복문을 활용하여 문제를 해결해보았습니다. 오늘은 반복문과 조건문을 함께 사용하여 문제를 풀어보도록 하겠습니다. 핵심 포인트 반복문 : for문 조건문 N, X = map(int, input().split()) numbers = map(int, input().split()) for number in numbers : if number < X : print(number, end = ' ') 일단 문제의 입력은 첫번째 줄에 N과 X가 들어가고 두번째 줄에는 N개의 정수가 담긴 배열인 numbers를 입력으로 받습니다. 일단, 첫번째 줄과 두번째 줄 모두 map(int, input().split()) 을 이용해..