본문 바로가기

Python8

[Level 1] [python] 크레인 인형뽑기 게임 문제 파이썬 풀이 from collections import deque def solution(board, moves): length = len(board) dict = {} stack = deque() answer = 0 for i in range(length) : dict[i+1] = deque() for j in range(length) : if board[j][i] == 0 : continue dict[i+1].append(board[j][i]) # 크레인 게임 시작 for number in moves : if dict[number] : # 해당 number줄에 인형이 있다면 new = dict[number].popleft() if stack and stack[-1] == new : answer .. 2022. 1. 20.
[Level 1] [python] K번째수 문제 파이썬 풀이 def solution(array, commands): answer = [] for i, j, k in commands : new_arr = array[i-1 : j] new_arr.sort() answer.append(new_arr[k-1]) return answer 배열을 인덱싱을 이용하면 쉽게 풀 수 있는 문제였다. i번째는 인덱스로 i-1이고 인덱싱에서 end는 포함하지 않기 때문에 (j-1) 번째에 +1을 해줘서 j까지로 잘라낸다. 그리고 파이썬의 sort()함수를 이용해 잘라낸 배열을 정렬해주었다. 그리고 k번째(인덱스 k-1) 값을 answer배열에 추가해주었다. 2021. 12. 29.
[python] 11651 - 좌표 정렬하기2 문제 파이썬 풀이 11650번 문제의 정렬 기준이 y먼저로 바뀐 문제이다. #11650번과 정렬 기준 x,y반대로 import sys input = sys.stdin.readline n= int(input().rstrip()) v = [] for i in range(n) : x, y = map(int, input().rstrip().split()) v.append((x,y)) v.sort(key=lambda x:(x[1],x[0])) for x,y in v : print(x,y) [python]11650-좌표 정렬하기 11650번 문제에서 공부했듯 sort함수에 key를 부여하여 정렬 기준을 바꾸어줬다. 2021. 9. 1.
[python]11650-좌표 정렬하기 문제 파이썬 풀이 튜플로 2차원 좌표를 입력받아 리스트 안에 저장한 후, x좌표를 기준으로 오름차순 정렬하는 문제이다. (x좌표가 같을 시 y좌표 비교) import sys input = sys.stdin.readline n= int(input().rstrip()) v = [] for i in range(n) : x, y = map(int, input().rstrip().split()) v.append((x,y)) v.sort() for x,y in v : print(x,y) 시간 복잡도 개선을 위해 input대신 sys.stdin.readline을 사용하였다. 단, readline으로 입력을 받으면 끝에 개행 문자를 가져온다 하여 rstrip을 통해 제거하여주었다. 입력받기 for i in range(.. 2021. 8. 31.