목록코팅테스트/백준 문제 모음 (296)
For Programmer
https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AWVl3rWKDBYDFAXm SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 이 문제도 단순한 구현문제이다. T = int(input()) for i in range(1, T + 1): N, K = map(int, input().split()) K_list = list(map(int, input().split())) students = list(map(int, range(1, N + 1))) result = [] # 제출하지 않은 명단을 저장할 리스트 for j in stu..
https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV139KOaABgCFAYh SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 이문제도 단순한 구현 문제이다. 문제에서 요구한 대로 그대로 구현하면 된다. for order in range(1, 10 + 1): dump_count = int(input()) array = list(map(int, input().split())) for i in range(dump_count): max_ = max(array) # 최댓값을 저장 min_ = min(array) # 최솟값을 저장 ..
https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV134DPqAA8CFAYh& SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 이 문제는 한 빌딩을 기준으로 직접 양쪽 2개 빌딩의 높이 차를 계산해보면 쉽게 조건을 찾아 풀 수 있다. for order in range(1, 10 + 1): n = int(input()) gangnam = list(map(int, input().split())) count = 0 # 정답을 출력할 변수 for i in range(2, len(gangnam) - 2): # 초기 양쪽 2개씩 0..
https://swexpertacademy.com/main/solvingProblem/solvingProblem.do SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 문제는 해당 사이트 들어가서 확인하자. n의 범위가 작기 때문에 단순히 문제에서 요구하는 대로 반복문을 쭉쭉 돌아주면 쉽게 풀 수 있다. T = int(input()) for a in range(1, T + 1): N, M = map(int, input().split()) paris = [list(map(int, input().split())) for _ in range(N)] max_sum = 0 # 최대 합 저장할 변수 for i in rang..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/chYF2Y/btrskuHLtcW/XtUay2yokBSH9KsLGdlSLK/img.png)
단순한 구현문제 인거 같다. DP로도 풀 수 있는거 같은데 구현으로 푸는게 더 쉬울 것 같아서 구현으로 풀었다. 단순히 큰수열구할때 작은수열 구할때 한 반복문 안에서 2개로 나누어서 구해주면 되고 리스트에 쭉 담다가 만약 마지막 수보다 큰수나 혹은 작은수가 들어올 경우 즉, 연속수열이 깨질때 그때까지의 길이를 저장하고 다시 넣어주면 된다. from collections import deque N = int(input()) array = list(map(int, input().split())) length1 = 0 length2 = 0 queue1 = deque() queue2 = deque() for i in range(N): # 큰 연속 수열 찾을 때 if not queue1: # 큐가 비어 있다면 q..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/kz8uC/btrsc1sbnAO/Y4KFLAxklCJ2okw7bJkVx1/img.png)
아무리 봐도 좋은 코드가 생각이 안나서 그냥 무지성 하드구현 했다... 답을 보니 북쪽을 기준으로 0 위치에서 쭉 사각형을 펼처서 절대거리를 찾는 답이 있어서 해당 코드도 한번 구현해보았다. 우선 무지성 하드 구현코드 이다. width, height = map(int, input().split()) N = int(input()) location = [] # c,r 좌표 for i in range(N + 1): direct, loc = map(int, input().split()) if direct == 1: # 북 location.append([loc, height]) elif direct == 2: # 남 location.append([loc, 0]) elif direct == 3: # 서 locati..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/xPX15/btrscNGGbMB/xLmBDz6RbSmFUIKTiVfwGK/img.png)
이 문제는 100,100 으로 범위를 한정해 주었기 때문에 그 이유를 잘 생각해야 한다. 도화지의 크기만큼 이중 반복문을 돌아 넓이가 존재한다면 그 넓이를 1로 바꾸어 주면 쉽게 해결할 수 있다. N = int(input()) array = [[0] * 100 for _ in range(100)] # 도화지 범위 초기화 for _ in range(N): # 입력 받은 도화지 개수만큼 돈다. y1, x1 = map(int, input().split()) # 왼쪽아래 x,y 좌표를 받는다. for i in range(x1, x1 + 10): # 세로를 돈다. for j in range(y1, y1 + 10): # 가로를 돈다. array[i][j] = 1 # 해당 범위 값을 0에서 1로 바꿔준다. resul..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bn8PEa/btrsnoePcBV/MiussXZRrbgtVxqTaYU050/img.png)
이 문제는 파이썬의 슬라이싱 이용하면 쉽게 풀 수 있다. N = int(input()) temp = [0] * N sequence = list(map(int, input().split())) for i in range(1, N + 1): # 1부터 ~ 5 번 학생을 줄을 세운다. # 번호를 받은 학생이 들어갈 자리 뒤에부터 끝까지의 학생들을 자리 뒤로 모두 그대로 옮겨준다. temp[i - sequence[i - 1]:] = temp[i - sequence[i - 1] - 1:-1] temp[i - sequence[i - 1] - 1] = i # 그 후 빈자리에 해당 학생을 집어넣는다. print(*temp) #언패킹 연산자로 간편하게 공백을 기준으로 출력