[Coding Test]/[백준]
[백준] 15649 파이썬(python) : N과 M (1) - (permutations이용)
15649번 : N과 M (1) n, m = map(int, input().split())answer = []def backTracking(depth): if m == depth: print(" ".join(map(str, answer))) return for i in range(1, n+1): if i in answer: #1 continue answer.append(i) backTracking(depth+1) answer.pop()backTracking(0) 15651번 문제와 비슷한 문제다. 재귀함수로 순환하는 루틴도 비슷하다. 다른 점이 있다면 출력할때 같은 정수가 2번 나오면 안된다는 ..
[백준] 15651 파이썬(python) : N과 M (3)
15651번 : N과 M (3) import sys n ,m = map(int, sys.stdin.readline().split()) arr = [] #1 def backTracking(depth): #2 if depth == m: #3 print(*arr) #4 return for i in range(1, n+1): arr.append(i) #5 backTracking(depth+1) #6 arr.pop() #7 backTracking(0) #1 : 재귀를 사용해서 원소를 넣었다 뺏다 사용할 스택 #2 : 재귀를 이용한 백트래킹 함수 depth는 스택의 길이를 의미 #3 : depth == m은 스택의 길이가 입력값 m과 같아지면 출력 #4 : 리스트 언패킹을 이용하였다 #5 : 반복문을 이용해서 an..
[백준] 7568 파이썬(python) : 덩치
https://www.acmicpc.net/problem/7568 7568번: 덩치 우리는 사람의 덩치를 키와 몸무게, 이 두 개의 값으로 표현하여 그 등수를 매겨보려고 한다. 어떤 사람의 몸무게가 x kg이고 키가 y cm라면 이 사람의 덩치는 (x, y)로 표시된다. 두 사람 A 와 B의 덩 www.acmicpc.net 브루트포스 문제다. 입력되는 n의 범위가 2
[백준] 2798 파이썬(python) : 블랙잭
2790번 : 파이썬 입력값 m에 가장 가까우면서도 넘지 않는값을 구하는 문제다. 브루트포스로 풀어야 한다는 생각이 들었다. 3중 for문으로 O(n3)으로 해결하는데 입력값 n이 100을 넘지 않기 때문에 1,000,000 최대값이 백만이어서 1초안에 시간을 넘길 수 있다. n, m = map(int, input().split())array = list(map(int, input().split()))result = 0sum = 0for i in range(len(array)): #1 for j in range(i+1, len(array)): #2 for k in range(j+1, len(array)): #3 sum = array[i] + array[j] + ..
[백준] 2231 파이썬(python) : 분해합
https://www.acmicpc.net/problem/2231 2231번: 분해합 어떤 자연수 N이 있을 때, 그 자연수 N의 분해합은 N과 N을 이루는 각 자리수의 합을 의미한다. 어떤 자연수 M의 분해합이 N인 경우, M을 N의 생성자라 한다. 예를 들어, 245의 분해합은 256(=245+2+4+5)이 www.acmicpc.net 어디서 본것 같은 문제다. 좀 더 복습을 여러번 해서 기본유형을 숙달해야겠다. import sys n = int(sys.stdin.readline()) for i in range(1, n+1): #1 tmp = i #2 for j in str(i): #3 tmp += int(j) #4 if tmp == n: #5 print(i) break else: #6 print(0..
[백준] 1018 파이썬(python) : 체스판 다시 칠하기 - (나중에)
https://www.acmicpc.net/problem/1018 1018번: 체스판 다시 칠하기 첫째 줄에 N과 M이 주어진다. N과 M은 8보다 크거나 같고, 50보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에는 보드의 각 행의 상태가 주어진다. B는 검은색이며, W는 흰색이다. www.acmicpc.net 이해하는데 상당히 애먹었다. 아직 그래프를 그려주는 문제는 복잡해서 어려운가보다. 난이도는 실버4지만 체감 난이도는 골드 이상이었다. 이러한 문제를 많이 풀어본 고수들 입장에서는 실버4 난이도라고 느꼈다는것이니 나도 나중에 슉슉 풀 수 있는 날을 위해 포스팅을 해보려고 한다. n, m = map(int, input().split()) board = [ ] for _ in range(n): ..