전체 글

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

[Python][백준/BOJ] 7562번 : 나이트의 이동

https://www.acmicpc.net/problem/7562 7562번: 나이트의 이동 체스판 위에 한 나이트가 놓여져 있다. 나이트가 한 번에 이동할 수 있는 칸은 아래 그림에 나와있다. 나이트가 이동하려고 하는 칸이 주어진다. 나이트는 몇 번 움직이면 이 칸으로 이동할 수 www.acmicpc.net 내 코드 import sys from collections import deque input = sys.stdin.readline move = [(2,1),(1,2),(2,-1),(1,-2),(-1,2),(-2,1),(-2,-1),(-1,-2)] t = int(input()) def bfs(x, y): q = deque() q.append((x,y)) while q: x, y = q.popleft(..

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

[Python][백준/BOJ] 10610번 : 30

https://www.acmicpc.net/problem/10610 10610번: 30 어느 날, 미르코는 우연히 길거리에서 양수 N을 보았다. 미르코는 30이란 수를 존경하기 때문에, 그는 길거리에서 찾은 수에 포함된 숫자들을 섞어 30의 배수가 되는 가장 큰 수를 만들고 싶어한 www.acmicpc.net 내 코드 import sys from itertools import permutations input = sys.stdin.readline n = list(input().strip('\n')) n.sort(reverse=True) ans =0 res =[] if '0' in n: n = list(map(int, n)) if sum(n) %3==0: print(''.join(map(str, n))) ..

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

[Python][백준/BOJ] 11722번 : 가장 긴 감소하는 부분 수열

https://www.acmicpc.net/problem/11722 11722번: 가장 긴 감소하는 부분 수열 수열 A가 주어졌을 때, 가장 긴 감소하는 부분 수열을 구하는 프로그램을 작성하시오. 예를 들어, 수열 A = {10, 30, 10, 20, 20, 10} 인 경우에 가장 긴 감소하는 부분 수열은 A = {10, 30, 10, 20, 20, 10} www.acmicpc.net 내 코드 import sys input = sys.stdin.readline n= int(input()) arr = list(map(int, input().split())) dp = [1 for i in range(n)] for i in range(n): for prev in range(0, i): if arr[prev] ..

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

[Python][백준/BOJ] 11050번 : 이항 계수 1

https://www.acmicpc.net/problem/11050 11050번: 이항 계수 1 첫째 줄에 \(N\)과 \(K\)가 주어진다. (1 ≤ \(N\) ≤ 10, 0 ≤ \(K\) ≤ \(N\)) www.acmicpc.net 내 코드 n, k = map(int, input().split()) sum=0 def fac(n): if n==0 or n==1: return 1 else: return n*fac(n-1) print(fac(n) // (fac(k)*fac(n-k))) 코드 리뷰 틀린 문제가 거슬려서 풀어보고 있는데 예전의 나는 단순한 것도 정말 많이 틀렸다. 이 문제를 풀어봄으로써 factorial 함수에 대해 다시 생각해볼 수 있었다. 팩토리얼 함수는 대표적인 재귀 함수이다. 문제 자체..

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

[Python][백준/BOJ] 1977번 : 완전제곱수

https://www.acmicpc.net/problem/1977 1977번: 완전제곱수 M과 N이 주어질 때 M이상 N이하의 자연수 중 완전제곱수인 것을 모두 골라 그 합을 구하고 그 중 최솟값을 찾는 프로그램을 작성하시오. 예를 들어 M=60, N=100인 경우 60이상 100이하의 자연수 중 완 www.acmicpc.net 내 코드 import sys input = sys.stdin.readline a=int(input()) b= int(input()) ans =[] for i in range(a,b+1): root = int(i**0.5) if i == root**2: ans.append(i) if ans: print(sum(ans)) print(min(ans)) else: print(-1) 완전..

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

[Python][백준/BOJ] 1252번 : 이진수 덧셈

https://www.acmicpc.net/problem/1252 1252번: 이진수 덧셈 첫째 줄에 두 개의 이진수가 빈 칸을 사이에 두고 주어진다. 각 이진수는 1 또는 0으로만 이루어져 있으며, 0으로 시작할 수도 있다. 또한 각 이진수의 길이는 80을 넘지 않는다. www.acmicpc.net 내 코드 import sys input = sys.stdin.readline a,b = input().split() a= int(a,2) b= int(b,2) print(bin(a + b)[2:]) 이진수 덧셈 정말 단순한 문제이지만, 파이썬에서의 이진수 사용에 대해 더 자세히 알 수 있는 문제였다. 해당 문제를 해결하는 과정은 다음과 같다. 2진수 입력받음 → 10진수로 바꾸고 연산 → 다시 2진수로 변환..

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

[Python][백준/BOJ] 22233번 : 가희와 키워드

https://www.acmicpc.net/problem/22233 22233번: 가희와 키워드 1번째 글을 쓰고 난 후에, 메모장에 있는 키워드는 set, floyd, os가 됩니다. 2번째 글을 쓰고 난 후에, 메모장에 있는 키워드는 set, os가 됩니다. map은 1번째 글과 2번째 글에 중복으로 등장하였음을 www.acmicpc.net 내 코드 시간 초과된 코드 import sys input = sys.stdin.readline n,m = map(int, input().split()) a=set(input().strip('\n') for _ in range(n)) blog = list(input().rstrip('\n').split(',') for _ in range(m)) b=set() for..

코딩테스트 대비/Python 문법

[Python] zip, enumerate

zip zip은 여러 개의 iterable 자료형을 묶을 때 사용한다. 2개도, 3개도, 4개도... 여러 개를 묶을 수 있다. 이 때 두 개의 리스트는 길이가 같아야 한다. age = [30,20,10,5] surname =['강', '서', '김', '박'] z= zip(surname, age) print(list(z)) [('강', 30), ('서', 20), ('김', 10), ('박', 5)] 이런 식으로 리스트 안에 들어있는 문자라면 묶어서 새로운 리스트로 만들어낼 수 있도록 한다. age = [30,20,10,5] surname =['강', '서', '김', '박'] z= zip(surname, age) 만약 zip으로 묶어놓고 list나 dict 등으로 안 묶어준다면 이런 식으로 zip 타..

bee22
beeee