핵심 포인트 반복문 : for문 1차원 배열 reversed() 함수 제출코드 N, M = map(int, input().split()) backets = [i + 1 for i in range(N)] for _ in range(M): i, j = map(int, input().split()) backets[i - 1:j] = reversed(backets[i - 1:j]) print(' '.join(map(str, backets))) 해설 backets 변수에 1번부터 $N$번까지 정렬된 바구니의 번호를 초기화시켜줍니다. 다음으로 $M$번 반복문을 순회하면서 뒤집는 시작번호 $i$와 끝번호 $j$를 입력 받게 되죠. 이때, $i$번 인덱스부터 $j$번 인덱스까지 슬라이싱 한뒤 reversed 함수를 이..
핵심 포인트 반복문 : for문 1차원 배열 제출코드 check = [0] * 30 for _ in range(28): check[int(input()) - 1] = 1 for idx, check_ in enumerate(check): if check_ != 1: print(idx + 1) 해설 check 변수에 해당 번호의 학생이 과제를 제출 (1)했는 지 안했는(0) 지를 저장해놓습니다. 이제 반복문을 통해 한 줄에 하나씩 입력을 받을 때 마다 제출한 학생의 번호에 따른 check 변수를 0에서 1로 바꾸어줍니다. 출력할 때는 한번 더 반복문과 enumerate를 이용해서 번호순으로 과제를 제출하지 않은 학생의 번호를 출력해줍니다. 참고자료 및 그림출처 백준 코딩 문제
핵심 포인트 반복문 : 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") 해설 반복문을 순회하면서 지속적으로 입력을 받고 각 물건의 가격과 개수를 곱한 뒤 모두 더해주어 조건문으로 실제가격과 계산된 가격이 일치하는 지 확인하면 됩니다. 참고자료 및 그림출처 백준 코딩 문제
완벽한 코딩은 존재하지 않습니다. 제가 제출한 코드 역시 마찬가지고 그저 참고만 해주시길 바랍니다. 핵심 포인트 입력함수 input 문자열 자르기 함수 split 자료형 변환함수 map 파이썬 기본 연산 + 제출 코드 A, B, C = map(int, input().split()) print(A + B + C) 해설 해당 문제는 BOJ 1000번 : A + B를 참고하시면 쉽게 풀 수 있습니다. 다른 점은 입력을 3개 받는다는 점 입니다. 참고자료 및 그림출처 백준 코딩 문제 파이썬 공식 문서 : map() 파이썬 공식 문서 : split()
안녕하세요. 오늘은 영상 분할 (Image Segmentation) 분야에서 필수적으로 사용되는 데이터셋인 PASCAL VOC 2012 Segmentation에 대해서 알아보고 pytorch를 이용해서 DataLoader를 만들어보도록 하겠습니다. 1. PASCAL VOC 2012 Segmentation Dataset 소개 PASCAL VOC 2012 데이터셋은 Semantic Segmentation 뿐만 아니라 Object Detection, Instance Segmentation을 위한 다용도 데이터셋입니다. 저는 이 중에서 Semantic Segmentation을 위한 DataLoader를 구성해보도록 하겠습니다. 해당 데이터셋은 21개의 클래스 (vehicles, household, animals..