공부/📝 백준(12)
-
11656 접미사 배열 - Python
1. 풀이 코드 string = input() answer = [] for i in range(len(string)): answer.append(string[i:]) print("\n".join(sorted(answer))) 차근차근 진행했습니다. 2. 다른 사람 풀이 코드 s=input();print(*sorted(s[n:]for n in range(len(s)))) 제 풀이와 같은 매커니즘이지만, 한줄쓰기를 정말 잘하네요. 백준: https://www.acmicpc.net/problem/11656 11656번: 접미사 배열 첫째 줄에 문자열 S가 주어진다. S는 알파벳 소문자로만 이루어져 있고, 길이는 1,000보다 작거나 같다. www.acmicpc.net 참고한 풀이: https://www.acm..
2023.12.10 -
10610 30 - Python
1. 풀이 코드 num = input() num_list = [] for i in num: num_list.append(int(i)) num_list.sort(reverse=True) if sum(num_list) % 3 != 0 or num_list[-1] != 0: print(-1) else: result = ''.join(map(str, num_list)) print(result) 3의 배수는 각 자리의 합이 3의 배수가 된다는 성질을 이용했습니다. 2. 다른 사람 풀이 코드 print([x:=int("".join(sorted(input())[::-1])),-1][x%30>0]) 정말 잘 풀었네요. 특히 감탄한 부분은 x := 를 통해 변수 x에 값을 할당한 뒤에 [x, -1] 리스트를 만들어서, ..
2023.12.10 -
25757 임스와 함께하는 미니게임 - Python
1. 풀이 코드 times, Game = input().split() player = set() for _ in range(int(times)): player.add(input()) if Game == "Y": X = 1 elif Game == "F": X = 2 else: X = 3 print(len(player) // X) set() 집합으로 만들어서 중복을 없앤 뒤에 작업을 진행했습니다. 다만 한 가지 배운 점이라면 list는 append()를, set은 add()를 써야 하더라구요. 2. 다른 사람의 풀이 코드 s,*a=open(0);print(len({*a})//'`YFO'.find(s[-2])) 이렇게 푼 코드를 발견했는데 정말 신기하더라구요. 완전 생소한 풀이였기에 코드를 여러번 읽었습니다...
2023.10.08 -
1072 게임 - Python
X, Y = map(int, input().split()) current_win_rate = (Y * 100) // X if current_win_rate >= 99: print(-1) else: low, high = 0, 1000000000 answer = -1 while low current_win_rate: high = mid - 1 answer = mid else: low = mid + 1 print(answer) 이분법으로 푼 내용입니다. X, Y = map(int, input().split()) Z_origin = int(Y / X * 100) answer = X**2 / (99*X - 100*Y) if X + answer: answer = answer // 1 + int(bool(answer..
2023.09.19 -
10816 숫자 카드 2 - Python
from collections import defaultdict n = int(input()) cards = list(map(int, input().split())) m = int(input()) targets = list(map(int, input().split())) card_count = defaultdict(int) for card in cards: card_count[card] += 1 for target in targets: print(card_count[target], end=' ') 딕셔너리로 풀었습니다. 이 문제인 경우 숫자 카드가 많이 크기에 일반적으로 많은 시간이 소요됩니다. 이런 경우 이분법으로 풀어야 하지만 파이썬의 경우 딕셔너리를 지원하기에 시간 복잡도 우위를 가집니다. def ..
2023.09.17