본문 바로가기

Programming [Python]

(411)
#90 백준 파이썬 [11651] 좌표 정렬하기 2 https://www.acmicpc.net/problem/11651 #Solution 최고다 Lambda N = int(input()) dot_list = [] for _ in range(N): dot_list.append(list(map(int, input().split()))) dot_list.sort(key = lambda dot: (dot[1], dot[0])) for [i, j] in dot_list: print(i, j)
#89 백준 파이썬 [11650] 좌표 정렬하기 https://www.acmicpc.net/problem/11650 #Solution N = int(input()) dot_list = [] for _ in range(N): dot_list.append(list(map(int, input().split()))) dot_list.sort(key = lambda dot: (dot[0], dot[1])) for [i, j] in dot_list: print(i, j)
#88 백준 파이썬 [1427] 소트인사이드 https://www.acmicpc.net/problem/1427 #Solution N = list(str(input())) N.sort(reverse = True) answer = "" for i in N: answer += i print(int(answer))
#87 백준 파이썬 [1018] 체스판 다시 칠하기 - 부르트포스 https://www.acmicpc.net/problem/1018 #Solution BW와 WB판으로 나누어서 풀어야한다는 힌트가 주어졌다. 각각의 판을 전부 BW 혹은 WB로 바꾼 뒤, 가상의 체스판에 1을 넣어준다. 8x8 전수 조사를 통해서 1이 가장 적은 부분을 찾아낸다. y_axis, x_axis = map(int, input().split()) board = [] for _ in range(y_axis): board.append(list(map(str, list(input())))) num_replaced_by_line_BW = [[0 for _ in range(x_axis)] for _ in range(y_axis)] num_replaced_by_line_WB = [[0 for _ in ra..
#86 백준 파이썬 [11729] 하노이 탑 이동 순서 https://www.acmicpc.net/problem/11729 #Solution 하노이의 탑을 직접 풀어보면 답은 금방 나온다. n개의 원판 디스크를 옮길 때는 먼저 n-1개의 원판을 중간에 놓고, 제일 큰 원판을 3으로 옮긴다. 이후 다시 n-1개의 원판을 2에서 3으로 옮긴다. 이를 식으로 써보면 다음과 같다. def hanoi(disk, start, mid, end): if disk == 1: print(start, end) else: hanoi(disk - 1, start, end, mid) print(start, end) hanoi(disk - 1, mid, start, end) total_disk = int(input()) total_mvmt = 0 for disk in range(tot..
#85 백준 파이썬 [1436] 영화감독 숌 - 부르트포스 https://www.acmicpc.net/problem/1436 #Solution 여러가지로 시도해봤는데 부르트포스밖에 답이 없다. 미리 리스트 만들어 놓기, 나누기 등등을 활용해봤지만 식만 더 복잡해졌다. 오히려 이 방법이 시간 복잡도가 낮아서 좋다. N = int(input()) movie = 666 while N: if "666" in str(movie): N -= 1 movie += 1 print(movie - 1)
#84 백준 파이썬 [1003] 피보나치 함수 - 반복문 https://www.acmicpc.net/problem/1003 #Solution 시간 단축을 위해선 무조건 재귀가 아닌 반복문만 쓴다. 위 예시는 낚시였다. case = int(input()) def fibonacci(i): if i ==0: print(1, 0) elif i == 1: print(0, 1) elif i == 2: print(1, 1) else: temp = 0 current = 1 before = 0 for j in range(i - 1): temp = current current = before + temp before = temp print(before, current) for _ in range(case): num = int(input()) fibonacci(num)
#83 백준 파이썬 [2798] 블랙잭 https://www.acmicpc.net/problem/2798 #Solution 원래는 조합으로 풀어야하기에 3개의 for문을 돌려야하지만 파이썬에는 순열 조합 라이브러리(itertools모듈의 combinations함수)가 존재하므로 이를 이용하면 간편하게 풀 수 있다. from itertools import combinations card_num, target_sum = map(int, input().split()) card_list = list(map(int, input().split())) biggest_sum = 0 for cards in combinations(card_list, 3): temp_sum = sum(cards) if biggest_sum < temp_sum