안녕하세요. 지난 포스팅의 BOJ 4673번 : 셀프 넘버에서는 구현문제를 풀어보았습니다. 오늘도 마찬가지로 구현문제를 풀어보도록 하죠. 완벽한 코딩은 존재하지 않습니다. 제가 제출한 코드 역시 마찬가지고 그저 참고만 해주시길 바랍니다. 핵심 포인트 1차원 배열 : 리스트 자료형 조건문 반복문 제출 코드 N = int(input()) if N < 100 : print(N) else : cnt = 99 for number in range(100, N + 1) : if 2 * ((number // 10) % 10) == number // 100 + number % 10 : cnt += 1 print(cnt) 설명 이와 같이 수학과 관련된 구현문제를 저희는 이미 BOJ 1110번 : 더하기 사이클와 BOJ 4..
안녕하세요. 지난 포스팅의 BOJ 4344번 : 평균은 넘겠지에서는 1차원 배열을 기반으로 문제를 풀어보았습니다. 오늘은 백준 단계별 문제 풀이에서 함수 카테고리로 오게 되었지만 함수를 사용하지 않고 그냥 반복문, 조건문, 1차원 배열과 같은 기본적인 개념들을 위주로 문제를 풀어보도록 하겠습니다. 완벽한 코딩은 존재하지 않습니다. 제가 제출한 코드 역시 마찬가지고 그저 참고만 해주시길 바랍니다. 핵심 포인트 1차원 배열 : 리스트 자료형 조건문 반복문 제출 코드 self_numbers = [1] * 10000 for number in range(1, 10000) : if self_numbers[number] == 0 : continue sequence = number while True : while n..
안녕하세요. 지난 포스팅의 BOJ 3052번 : 나머지에서는 반복문과 리스트 자료형을 이용해서 문제를 풀어보았습니다. 특히, 저희는 리스트 압축(list compression)이라는 개념을 통해 여러 줄의 숫자를 하나의 리스트에 저장하는 쉬운 방법을 배웠습니다. 오늘도 역시 리스트 자료형을 활용하여 문제를 풀어보도록 하겠습니다. 핵심 포인트 1차원 배열 : 리스트 자료형 파이썬 리스트 함수 : sum() 함수와 max() 함수 제출 코드 N = int(input()) grade = list(map(int, input().split())) max_grade = max(grade) print((sum(grade) / max_grade * 100) / N) 해설 문제의 입력은 첫번째 줄에는 점수의 개수, 두번..
안녕하세요. 지난 포스팅의 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의 일의 자리 ..