본문 바로가기

Algorithm475

[파이썬] 백준 1475 : 방 번호 (실버5) [파이썬] 백준 1475 : 방 번호 (실버5) 1475번: 방 번호 첫째 줄에 다솜이의 방 번호 N이 주어진다. N은 1,000,000보다 작거나 같은 자연수이다. www.acmicpc.net 문제 풀이 정수가 엄청 커도 문자열로 받을거라 크게 상관 없다. 리스트 또는 딕셔너리로 각 숫자가 몇번 나왔는지 카운트 해준다. 6,9는 한 세트이므로 카운트를 한 후 둘이 더해준다. 6,9를 제외한 최대값과 6,9의 합을 2로 나눈 값을 비교한다. import math n = input() num = ['0','1','2','3','4','5','6','7','8','9'] temp = [0 for i in range(10)] table = dict(zip(num,temp)) for i in n: table[i.. 2023. 5. 29.
[파이썬] 백준 1343 : 폴리오미노 (실버5) [파이썬] 백준 1343 : 폴리오미노 (실버5) 1343번: 폴리오미노 첫째 줄에 사전순으로 가장 앞서는 답을 출력한다. 만약 덮을 수 없으면 -1을 출력한다. www.acmicpc.net 문제 풀이 0. 방향성 생각 .을 기준으로 나눈다. 나누어진 문자열 중 X의 길이별로 구분한다. 1. 전체 코드 word = input() arr = list(word.split('.')) temp = [] goal = True for i in arr: if len(i)%2 == 0: a,b = divmod(len(i),4) s = '' s += 'AAAA'*a s += 'B'*b temp.append(s) else : print(-1) goal = False break if goal : print('.'.join(.. 2023. 5. 28.
[파이썬] 백준 3273 : 두 수의 합 (실버3) [파이썬] 백준 3273 : 두 수의 합 (실버3) 3273번: 두 수의 합 n개의 서로 다른 양의 정수 a1, a2, ..., an으로 이루어진 수열이 있다. ai의 값은 1보다 크거나 같고, 1000000보다 작거나 같은 자연수이다. 자연수 x가 주어졌을 때, ai + aj = x (1 ≤ i < j ≤ n)을 만족하는 www.acmicpc.net 문제 풀이 0. 방향성 생각 두 수의 합을 찾는 문제. 목표 goal이 있을 때 goal 보다 작은 수 i가 주어지면 goal-i가 리스트에 있는지 찾아주면 된다. 리스트의 크기가 최대 10^6이므로 탐색 시간을 줄이기 위해 set을 쓴다. 1. 카운팅 n = int(input()) arr = list(map(int,input().split())) arr_.. 2023. 5. 27.
[파이썬] 백준 10819 : 차이를 최대로 (실버) [파이썬] 백준 10819 : 차이를 최대로 (실버) 10819번: 차이를 최대로 첫째 줄에 N (3 ≤ N ≤ 8)이 주어진다. 둘째 줄에는 배열 A에 들어있는 정수가 주어진다. 배열에 들어있는 정수는 -100보다 크거나 같고, 100보다 작거나 같다. www.acmicpc.net 문제 풀이 0. 방향성 생각 주어진 n의 범위가 매우 작다는 점 (팩토리얼 하면 크긴 하지만) 이 부분을 이용해서 모든 순열 찾고 진행. 주어진 수의 최소값이 -100이므로 절대값 합의 최소값을 100*n으로 잡고 갱신 1. 풀이 from itertools import permutations n = int(input()) arr = list(map(int,input().split())) answer = -100*n temp .. 2023. 5. 26.