일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 매일11시
- lcm
- 코틀린
- Python
- 안드로이드
- 파이썬
- Kotlin
- 나머지
- 앱
- Android
- 순열
- 1260
- 11053
- 11기
- 괄호
- expo
- LCS
- 홈화면
- 뒤로가기
- 1182
- 11054
- itertools
- permutation
- 코테
- 11057
- 9095
- 백준
- 최소공배수
- 6603
- Combination
- Today
- Total
목록파이썬 (50)
황소개발자
import sys input = sys.stdin.readline t = int(input()) for i in range(t): n, m = map(int, input().split()) info = list(map(int, input().strip().split())) info = [[x, idx] for idx, x in enumerate(info)] ans = 0 while True: if info[0][0] == max(info)[0]: ans += 1 if info[0][1] == m: print(ans) break else: info = info[1:] else: info = info[1:] + info[:1] 옆에 인덱스 붙여서 이중리스트로 풀었다
import sys input = sys.stdin.readline n, s = map(int, input().split()) num_list = list(map(int, input().split())) ans = 0 def subSet(idx, total): global ans if idx >= n: return total += num_list[idx] if total == s: ans += 1 subSet(idx + 1, total - num_list[idx]) subSet(idx + 1, total) subSet(0, 0) print(ans) jaimemin 님의 c++ 풀이를 참고하였다. 재귀로 풀었다. Solution 각 원소는 그 원소가 포함되었는지 안되었는지로 나뉘어진다. 길이가 0인 것이 ..
import sys input = sys.stdin.readline brackets = input().strip() def check_brakcets(ss): stack = [] for s in ss: if s == '(' or s == '[': stack.append(s) elif s == ')' and stack: if stack[-1] == '(': stack = stack[:-1] else: stack.append(s) elif s == ']' and stack: if stack[-1] == '[': stack = stack[:-1] else: stack.append(s) else: stack.append(s) if stack: return False else: return True def sol..
import sys input = sys.stdin.readline mat = [] n, m, y, x, k = map(int, input().split()) for i in range(n): mat.append(list(map(int, input().split()))) orders = list(map(int, input().split())) class Dice: def __init__(self): self.west = 0 self.north = 0 self.east = 0 self.south = 0 self.up = 0 self.down = 0 def go_south(self): self.north, self.up, self.south, self.down = self.down, self.north, s..
import sys input = sys.stdin.readline N = int(input()) tester_num = list(map(int, input().split())) a, b = map(int, input().split()) ans = N for num in tester_num: num -= a if num < 0: continue ans += num // b if num % b == 0 else num // b + 1 print(ans) 삼성역량테스트 기출문제라는데, 거의 손풀기문제군요. 근데 정답률이 25%(백준에서) 우선 각 반에 감독관 1명씩 계산하고 남는 학생들에 대하여 부감독관 넣어주는거죠. 나누어 떨어지면 그 수만큼 넣고, 안나누어 떨어지면 한 명 더 넣어주고.
혹시나 시간초과가 나면 어쩔까 했는데 시간복잡도 n^2 으로 풀어도 괜찮다. import sys r = sys.stdin.readline people = [] n = int(r()) for i in range(n): x, y = map(int, r().split()) people.append([x, y]) for i in range(n): total = 1 for j in range(n): if i == j: continue if people[j][0] > people[i][0] and people[j][1] > people[i][1]: total += 1 print(total, end=" ") 이런 단순한 문제를 보면 시간초과 공포증이 있다;; TIME LIMIT POBIA
간단한 문제다 브루트포스 문제가 그냥 생각흐름대로 코딩하기 딱 좋다. n = int(input()) for i in range(n + 1): i_s = str(i) total = i for j in i_s: total += int(j) if total == n: break print(i if i != n else 0)
다익스트라는 Greedy 와 BFS 를 섞은 느낌이다 BFS에서 대신 q를 쓸 때, min heap q를 사용한다. 그래야 다음으로 가장 짧은 노드를 빠르게 찾을 수 있으니. import sys import heapq inpu = sys.stdin.readline INF = 999999999 def dijkstra(v, start, g): dist = [INF] * (V + 1) dist[start] = 0 q = [] heapq.heappush(q, [0, start]) while q: cost, loc = heapq.heappop(q) for l, c in g[loc]: c += cost if c < dist[l]: dist[l] = c heapq.heappush(q, [c, l]) return di..