전체 글

개발..해볼까?
코딩테스트 대비/백준(BOJ)

[Python][백준/BOJ] 15652번 : N과 M (4)

https://www.acmicpc.net/problem/15652 15652번: N과 M (4) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net 내 코드 import sys input = sys.stdin.readline n, m = map(int, input().split()) tmp = [] def dfs(start): if len(tmp) == m: print(' '.join(map(str, tmp))) return for i in range(start, n+1): tmp.append(i) dfs(i) tmp.pop() dfs(1)..

코딩테스트 대비/백준(BOJ)

[Python][백준/BOJ] 15651번 : N과 M (3)

https://www.acmicpc.net/problem/15651 15651번: N과 M (3) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net 내 코드 import sys input = sys.stdin.readline n, m = map(int, input().split()) tmp = [] def dfs(): if len(tmp) == m: print(' '.join(map(str, tmp))) return for i in range(1, n+1): tmp.append(i) dfs() tmp.pop() dfs() dfs, 중복 순열..

코딩테스트 대비/백준(BOJ)

[Python][백준/BOJ] 15650번 : N과 M (2)

https://www.acmicpc.net/problem/15650 15650번: N과 M (2) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net 내 코드 import sys input = sys.stdin.readline n, m = map(int, input().split()) tmp = [] visited =[False for _ in range(101)] def dfs(start): if len(tmp) == m: print(' '.join(map(str, tmp))) return for i in range(start, n+1): ..

코딩테스트 대비/백준(BOJ)

[Python][백준/BOJ] 15649번 : N과 M (1)

https://www.acmicpc.net/problem/15649 15649번: N과 M (1) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net 내 코드(1) - visited[] 안 쓰고 풀기 n, m = list(map(int, input().split())) s = [] def dfs(): if len(s) == m: print(' '.join(map(str, s))) return for i in range(1, n + 1): if i not in s: s.append(i) dfs() s.pop() dfs() 내 코드(2) - vi..

코딩테스트 대비/백준(BOJ)

[Python][백준/BOJ] 4673번 : 셀프 넘버

https://www.acmicpc.net/problem/4673 4673번: 셀프 넘버 셀프 넘버는 1949년 인도 수학자 D.R. Kaprekar가 이름 붙였다. 양의 정수 n에 대해서 d(n)을 n과 n의 각 자리수를 더하는 함수라고 정의하자. 예를 들어, d(75) = 75+7+5 = 87이다. 양의 정수 n이 주어졌을 때, www.acmicpc.net 내 코드 import sys input = sys.stdin.readline selfnum= [] notself =set() def selfmake(num): num = num + sum(map(int, str(num))) return num for i in range(1, 10001): notself.add(selfmake(i)) for i in..

코딩테스트 대비/Python 문법

[Python] 각 자릿수 분리하는 방법

문자열로 변환하여 분리 num = 1234 arr = [] for i in str(num): arr.append(i) >> ['1','2','3','4'] 파이썬에서 문자열은 각 자리를 분리할 수 있다. 특히 for 문을 이용한다면 각 문자를 분리하기가 더 용이해진다. sum으로 바로 더해주기 num = 1234 sum([int(i) for i in str(num)]) 위의 코드를 이용하여 각 자릿수를 바로 더할 수도 있다. 10으로 나누어 분리하기 num = 1234 arr = [] while(num >0): arr.append(num%10) num //= 10 >> [4, 3, 2, 1] 가장 고전적인 방법이다. 아마 대부분의 컴공 학생들이 자릿수를 분리할 때 처음에 이렇게 배웠을 것이라고 생각한다...

코딩테스트 대비/백준(BOJ)

[Python][백준/BOJ] 1010번 : 다리 놓기

https://www.acmicpc.net/problem/1010 1010번: 다리 놓기 입력의 첫 줄에는 테스트 케이스의 개수 T가 주어진다. 그 다음 줄부터 각각의 테스트케이스에 대해 강의 서쪽과 동쪽에 있는 사이트의 개수 정수 N, M (0 < N ≤ M < 30)이 주어진다. www.acmicpc.net 내 코드 import math t = int(input()) for _ in range(t): n, m = map(int, input().split()) print(math.comb(m, n)) math.comb(a,b) bCa 의 조합 개수를 자동으로 계산해주는 파이썬의 내장 함수이다. 다리를 놓을 수 있는 경우의 수는 조합의 개수와 마찬가지이므로 comb() 함수를 이용했다. 조심해야 할 부분..

코딩테스트 대비/백준(BOJ)

[Python][백준/BOJ] 5622번 : 다이얼

https://www.acmicpc.net/problem/5622 5622번: 다이얼 첫째 줄에 알파벳 대문자로 이루어진 단어가 주어진다. 단어의 길이는 2보다 크거나 같고, 15보다 작거나 같다. www.acmicpc.net 내 코드(틀린 코드) import sys input = sys.stdin.readline num =0 string = input().strip() for i in string: print((ord(i)-65)//3 +3) print(num) 옳은 풀이 import sys input = sys.stdin.readline ans =0 dial = ['ABC', 'DEF','GHI', 'JKL', 'MNO','PQRS', 'TUV', 'WXYZ'] word = input().strip(..

bee22
beeee