본문 바로가기

알고리즘

(158)
백준)랜선 자르기 https://www.acmicpc.net/problem/1654 a,b = map(int,input().split()) arr = [] for i in range(a): z = int(input()) arr.append(z) start,end = 1,max(arr) while start= mid: sums = sums + (i // mid) if b > sums: end = mid - 1 else: start = mid + 1 print(end) 이분법을 조금 넓게 수행해야하는 문제이다.
백준) 나이트의 이동 https://www.acmicpc.net/problem/7562 7562번: 나이트의 이동 체스판 위에 한 나이트가 놓여져 있다. 나이트가 한 번에 이동할 수 있는 칸은 아래 그림에 나와있다. 나이트가 이동하려고 하는 칸이 주어진다. 나이트는 몇 번 움직이면 이 칸으로 이동할 수 www.acmicpc.net from collections import deque a = int(input()) dx = [-2,-2,-1,1,2,2,1,-1] dy = [-1,1,2,2,1,-1,-2,-2] answer = [] for _ in range(a): row = int(input()) now = list(map(int,input().split())) forward = list(map(int,input().split..
백준) 나이트의 이동 https://www.acmicpc.net/problem/7562 7562번: 나이트의 이동 체스판 위에 한 나이트가 놓여져 있다. 나이트가 한 번에 이동할 수 있는 칸은 아래 그림에 나와있다. 나이트가 이동하려고 하는 칸이 주어진다. 나이트는 몇 번 움직이면 이 칸으로 이동할 수 www.acmicpc.net from collections import deque a = int(input()) dx = [-2,-2,-1,1,2,2,1,-1] dy = [-1,1,2,2,1,-1,-2,-2] answer = [] for _ in range(a): row = int(input()) now = list(map(int,input().split())) forward = list(map(int,input().split..
백준) 숫자판 점프 https://www.acmicpc.net/problem/2210 2210번: 숫자판 점프 111111, 111112, 111121, 111211, 111212, 112111, 112121, 121111, 121112, 121211, 121212, 211111, 211121, 212111, 212121 이 가능한 경우들이다. www.acmicpc.net arr = [] numbers= [] for i in range(5): a = list(map(str,input().split())) arr.append(a) dx = [0,0,1,-1] dy = [-1,1,0,0] def dfs(x,y,string): if len(string) == 6: if string not in numbers: numbers.ap..
프로그래머스) 둘만의 암호 https://school.programmers.co.kr/learn/courses/30/lessons/155652 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제가 조금 불친절하지만 이해하는데 그닥 어렵지 않았다. 문자열 s에 한글자씩 Index만큼 +를 한다. 만일 플러스 도중 skip에 있는 문자를 만나면 그 단어는 건너뛰게 된다. 만일 s ='a', skip='b' index=1 이라 했을 때, a의 다음 값은 b가 된다. 하지만 b는 skip에 있는 값이므로 pass. 즉 answer 는 c가 된다. 이런 문제는 상당히 간단하다. 문자를 아스..
프로그래머스)무인도 여행 https://school.programmers.co.kr/learn/courses/30/lessons/154540 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 처음 제출한 코드 def solution(maps): answer = [] visit = [[False for _ in range(len(maps[0]))] for _ in range(len(maps))] answer = [] dx = [1,-1,0,0] dy = [0,0,-1,1] def dfs(x,y,cnt): visit[x][y] = True for i in range(4): nx = x ..
백준)Hello World! https://www.acmicpc.net/problem/2557 2557번: Hello World Hello World!를 출력하시오. www.acmicpc.net print('Hello World')
백준)분해합 https://www.acmicpc.net/problem/2231 a = int(input()) answer = 0 for i in range(1,a): b = sum(map(int, str(i))) if i +b == a: answer = i break print(answer)