핵심 포인트 반복문 : for문 제출코드 N, M = map(int, input().split()) switch = [map(int, input().split()) for _ in range(M)] backets = [i + 1 for i in range(N)] for i, j in switch: old_i, old_j = backets[i - 1], backets[j - 1] backets[i - 1], backets[j - 1] = old_j, old_i print(' '.join(map(str, backets))) 해설 switch 리스트에서는 각 바구니에 들어있는 공을 바꾸는 정보를 넣어주고 backets 리스트에는 현재 바구니안에 들어있는 공의 번호를 넣어줍니다. 초기화는 [1, 2, 3, 4,..
핵심 포인트 반복문 : for문 제출코드 N, M = map(int, input().split()) backets = [map(int, input().split()) for _ in range(M)] ball = [0] * N for start, end, number in backets: for idx in range(start, end + 1): ball[idx - 1] = number print(' '.join(map(str, ball))) 해설 backets 리스트에 공을 넣은 바구니의 시작 번호와 끝번호 그리고 공의 번호를 입력받아 줍니다. 그리고 반복문을 통해 순회하며 해당 바구니의 시작번호부터 끝번호까지 주어진 공의 번호를 넣어주면 됩니다. 참고자료 및 그림출처 백준 코딩 문제
완벽한 코딩은 존재하지 않습니다. 제가 제출한 코드 역시 마찬가지고 그저 참고만 해주시길 바랍니다. 핵심 포인트 반복문 : for문 제출코드 N = int(input()) num_list = map(int, input().split()) v = int(input()) cnt = 0 for value in num_list: if value == v: cnt += 1 print(cnt) 해설 숫자 배열 num_list와 세고자 하는 숫자 v를 입력받으면 반복문을 순회하면서 v와 value가 동일한 경우에만 cnt에 1을 더해주면 됩니다. 참고자료 및 그림출처 백준 코딩 문제
완벽한 코딩은 존재하지 않습니다. 제가 제출한 코드 역시 마찬가지고 그저 참고만 해주시길 바랍니다. 핵심 포인트 반복문 : for문 제출 코드 X = int(input()) N = int(input()) s = 0 for _ in range(N): price, number = map(int, input().split()) s += price * number if s == X: print("Yes") else: print("No") 해설 반복문을 순회하면서 지속적으로 입력을 받고 각 물건의 가격과 개수를 곱한 뒤 모두 더해주어 조건문으로 실제가격과 계산된 가격이 일치하는 지 확인하면 됩니다. 참고자료 및 그림출처 백준 코딩 문제
안녕하세요. 지난 포스팅의 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 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()) 을 이용해..