문제 사용언어: python알고리즘 분류: 수학, 구현난이도: 실버5 (2025.01.11 기준) 문제 보러가기[백준] 17039 - Sleepy Cow Herding (Bronze) 문제 정리소 3마리는 서로 다른 위치에 존재한다.소를 이동시켜 연속된 3개의 위치에 배치하고자한다.이동 방법끝점(최소 숫자 또는 최대 숫자 위치)에 있는 소만 이동할 수 있다.이동한 뒤에는 더 이상 끝점에 위치해서는 안된다.(= 소와 소 사이로 이동시켜야 한다.)이동횟수는 몇 칸을 이동했느냐가 아니라, 몇번을 이동했느냐다.(ex) 1번에 3칸 이동 => 이동 횟수 1번으로 카운트 ✨ 3마리 소의 간격을 모두 1로 만들기 위한 이동횟수를 구하면된다. 입출력입력소 세마리의 위치출력최소 이동횟수최대 이동횟수..
문제 사용언어: 파이썬 분류: 일반 수학1 난이도: 브론즈3 (2023.10.28 기준) 문제 보러가기 [백준] 2903 - 중앙 이동 알고리즘 2903번: 중앙 이동 알고리즘 상근이는 친구들과 함께 SF영화를 찍으려고 한다. 이 영화는 외계 지형이 필요하다. 실제로 우주선을 타고 외계 행성에 가서 촬영을 할 수 없기 때문에, 컴퓨터 그래픽으로 CG처리를 하려고 한다. www.acmicpc.net 입출력 입력 과정 수 출력 점의 개수 풀이 문제의 포인트 다음과 같다고 생각한다. ① 정사각형이다. ② 정사각형 중심에 점을 추가하고, 각변 중앙에 점을 추가한다. 👉 각 변에 점의 개수는 동일하다. 가로, 세로 길이, 점의 개수가 동일하다. 가로 첫번째 줄에 점이 5개면 세로 줄에 점도 5개 ⭐즉, 가로 점 ..
문제 사용언어: 파이썬 문제 유형: 일반 수학1 난이도: 브론즈1 (23.10.28 기준) 문제 보러가기 [백준]2869 - 달팽이는 올라가고 싶다 2869번: 달팽이는 올라가고 싶다 첫째 줄에 세 정수 A, B, V가 공백으로 구분되어서 주어진다. (1 ≤ B < A ≤ V ≤ 1,000,000,000) www.acmicpc.net 입출력 입력 낮에 올라가는 거리, 밤에 내려가는 거리, 나무 막대의 높이 출력 나무 막대에 올라가는데 걸리는 필요한 일 수 풀이 본 문제는 반복문을 사용하면 쉽게 풀 수 있다. 하지만 주어진 시간의 경우 반복문을 사용하면 지킬 수 없다. 따라서 수학적인 방법을 사용해야한다. a, b, v = map(int, input().split()) move = a-b goal = v-..
문제 문제 보러가기 [백준] 11005 - 진법 변환2 네이버 네이버 메인에서 다양한 정보와 유용한 컨텐츠를 만나 보세요 www.naver.com 입출력 입력 10진법 수 진법 출력 10진법 수를 진법으로 변환한 수 풀이 num, b = map(int, input().split()) answer = '' while(num > 0): num, mod = divmod(num, b) if mod > 9: mod = chr(mod+55) else: mod = str(mod) answer += mod print(answer[::-1]) 1) 10진법으로 표현된 수 num, 사용할 진법 b를 입력 받는다. 2) num을 b로 0이 될때까지 나눈다. 3) 나머지가 10이상이라면 이를 문자로 변환한다. (변환 A:10..
문제 문제 보러가기 [백준] 2745 - 진법 변환 2745번: 진법 변환 B진법 수 N이 주어진다. 이 수를 10진법으로 바꿔 출력하는 프로그램을 작성하시오. 10진법을 넘어가는 진법은 숫자로 표시할 수 없는 자리가 있다. 이런 경우에는 다음과 같이 알파벳 대문자를 www.acmicpc.net 입출력 입력 b진법으로 표현된 수 n, 진법b 출력 n을 10진수로 표현한 수 풀이 n, b = input().split() b = int(b) answer = 0 # len(n) = 5인 경우 4 ~ 0까지 반복 for i in range(len(n)-1, -1, -1): # 아스키코드를 사용해 현재 문자가 숫자가 아닌 경우 경우 문자 -> 숫자 변환 if ord(n[i]) >= 65: tmp = ord(n[i..
문제 문제 보러가기 [백준]10798 - 세로읽기 10798번: 세로읽기 총 다섯줄의 입력이 주어진다. 각 줄에는 최소 1개, 최대 15개의 글자들이 빈칸 없이 연속으로 주어진다. 주어지는 글자는 영어 대문자 ‘A’부터 ‘Z’, 영어 소문자 ‘a’부터 ‘z’, 숫자 ‘0’ www.acmicpc.net 입출력 입력 1~5줄 'A~Z', 'a~z', '0~9'로 이루어진 문자열 출력 세로로 읽은 문자열 1줄 풀이 arr=[input() for _ in range(5)] max_length = 0 for i in arr: if max_length < len(i): max_length = len(i) for i in range(max_length): for j in range(5): if i < len(arr[..
문제 문제 보러가기 [백준]2563 - 색종이 2563번: 색종이 첫째 줄에 색종이의 수가 주어진다. 이어 둘째 줄부터 한 줄에 하나씩 색종이를 붙인 위치가 주어진다. 색종이를 붙인 위치는 두 개의 자연수로 주어지는데 첫 번째 자연수는 색종이의 왼쪽 변 www.acmicpc.net 입출력 입력 1줄 색종이 개수 n 2 ~ n+1줄 색종이 왼쪽면, 아랫면(문제 사진상) 출력 색종이 넓이 풀이 n = int(input()) arr = [ [0] * 100 for _ in range(100) ] for _ in range(n): x, y = map(int, input().split()) for i in range(y, y + 10): for j in range(x, x + 10): arr[i][j] = 1 t..
문제 문제 보러가기 [백준]2566 - 최댓값 2566번: 최댓값 첫째 줄에 최댓값을 출력하고, 둘째 줄에 최댓값이 위치한 행 번호와 열 번호를 빈칸을 사이에 두고 차례로 출력한다. 최댓값이 두 개 이상인 경우 그 중 한 곳의 위치를 출력한다. www.acmicpc.net 입출력 입력 9x9크기로 이루어진 정수 행렬 출력 행렬에서 가장 큰 값. 가장 큰 값의 행 열. 풀이 arr = [ list(map(int, input().split())) for _ in range(9) ] max_num=0 c, r = 0, 0 for i in range(9): for j in range(9): if max_num