본문 바로가기

반응형

파이썬

[Python] 파이썬에서 0과 1 반전시키는 방법 사실 파이썬 뿐 아니라 모든 코딩에서 사용이 가능한 방법이다. 문제를 풀다보면, 0이면 1로, 1이면 0으로 바꾸는 문제가 많다. 이 때, 굉장히 쉬운 방법이 있다. 1에서 해당 수를 빼주면 된다. cur[i] = 1-cur[i] 더보기
[백준] 15729 - 방탈출 1. 문제 2. 코드 n = int(input()) l = list(map(int, input().split())) cur = [0 for _ in range(n)] cnt = 0 for i in range(n): if l[i] != cur[i]: cnt += 1 cur[i] = 1-cur[i] if i 1, 1->0) 시켜준다. 입력값과 달랐던 횟수를 출력하면 되는 쉬운 문제이다. 더보기
[백준] 1010번 - 다리 놓기 (파이썬) 1. 문제 2. 코드 import math t = int(input()) for _ in range(t): n, m = map(int, input().split()) ans = math.factorial(m) // (math.factorial(n)*math.factorial(m-n)) print(ans) 3. 풀이 m개의 사이트에 n개의 다리를 짓는 경우의 수를 구하는 문제이다. mCn. 즉, m! / ((m-n)! * n!) 이다. 이 때, 파이썬은 math 라이브러리에서 factorial을 이미 제공해준다. 따라서 해당 함수만 사용하면 쉽게 풀 수 있다. 더보기
[백준] 10845번 - 큐 1. 문제 2. 코드 from collections import deque import sys n = int(input()) queue = deque() for i in range(n): temp = sys.stdin.readline() #push if temp[0] == 'p' and temp[1] == 'u': temp, temp_num = temp.split() queue.append(temp_num) #pop elif temp[0] == 'p': if len(queue) == 0: print(-1) continue temp_num = queue.popleft() print(temp_num) #size elif temp[0] == 's': print(len(queue)) #empty elif tem.. 더보기
[백준] 5639번 - 이진 검색 트리 1. 문제 2. 코드 import sys sys.setrecursionlimit(10 ** 6) temp = sys.stdin.readline tree = [] def post_order(start, end): if start > end: return root = tree[start] idx = start + 1 while idx l -> r 중위 : l -> root -> r 후위 : l -> r -> root 전위 순회 결과를 가지고 후위 순회 결과를 출력하는 문제. (곧 설명 보강 예정,,,) 더보기
[백준] 2606번 - 바이러스 1. 문제 2. 코드 n = int(input()) m = int(input()) l = [0 for i in range(n+1)] matrix = [[0]*(n+1) for i in range(n+1)] for i in range(m): a, b = map(int, input().split()) matrix[a][b] = 1 matrix[b][a] = 1 def dfs(v): l[v] = 1 for i in range(n+1): if (l[i] == 0 and matrix[v][i] == 1): dfs(i) dfs(1) #print(cnt) print(sum(l)-1) 3. 풀이 dfs를 사용해서 풀면 쉬운 문제이다. dfs를 어떻게 작성하는지 잘 모른다면 아래 포스팅을 참고. https://talta.. 더보기
[백준] 1260번 - DFS와 BFS 1. 문제 2. 코드 n, m, v = map(int, input().split()) l_v = [0 for i in range(n+1)] l = [[0] * (n+1) for i in range(n+1)] for i in range(m): a, b = map(int, input().split()) l[a][b] = l[b][a] = 1 #print(l) #dfs def dfs(v): print(v, end = ' ') l_v[v] = 1 for i in range(1, n+1): if(l_v[i] == 0 and l[v][i] == 1): dfs(i) #bfs def bfs(v): queue = [v] l_v[v] = 0 while queue: v = queue.pop(0) print(v, end = .. 더보기
[백준] 1755번 - 숫자놀이 1. 문제 2. 코드 word = ['zero','one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine'] m, n = map(int, input().split()) l = [] for i in range(m, n+1): if i 5): print(l[i-1][1]) else: print(l[i-1][1], end = ' ') 3. 주요 포인트 숫자와 숫자를.. 더보기

반응형