본문 바로가기

알고리즘

(200)
백준 2206 벽 부수고 이동하기 파이썬 풀이 난이도 : 골드3 풀이일 : 05125 https://www.acmicpc.net/problem/2206 2206번: 벽 부수고 이동하기 N×M의 행렬로 표현되는 맵이 있다. 맵에서 0은 이동할 수 있는 곳을 나타내고, 1은 이동할 수 없는 벽이 있는 곳을 나타낸다. 당신은 (1, 1)에서 (N, M)의 위치까지 이동하려 하는데, 이때 최단 경로 www.acmicpc.net 링크로 이동하기 귀찮은 분들을 위한 문제 캡쳐 풀이 코드 import sys from collections import deque N, M = map(int, sys.stdin.readline().split()) arr = [sys.stdin.readline().strip() for _ in range(N)] visited = [[[..
백준 1271 엄청난 부자2 자바 풀이 난이도 : 브론즈5 풀이일 : 05033 https://www.acmicpc.net/problem/1271 1271번: 엄청난 부자2 첫째 줄에는 최백준 조교가 가진 돈 n과 돈을 받으러 온 생명체의 수 m이 주어진다. (1 ≤ m ≤ n ≤ 101000, m과 n은 10진수 정수) www.acmicpc.net 링크로 이동하기 귀찮은 분들을 위한 문제 캡쳐 1차 시도 오답 -> 런타임 에러 import java.util.*; public class Main { public static void main(String[] args) { Scanner scan = new Scanner(System.in); int total = scan.nextInt(); int people = scan.nextInt(); s..
백준 1600 말이 되고픈 원숭이 파이썬 풀이 난이도 : 골드3 풀이일 : 05127 https://www.acmicpc.net/problem/1600 1600번: 말이 되고픈 원숭이 첫째 줄에 정수 K가 주어진다. 둘째 줄에 격자판의 가로길이 W, 세로길이 H가 주어진다. 그 다음 H줄에 걸쳐 W개의 숫자가 주어지는데, 0은 아무것도 없는 평지, 1은 장애물을 뜻한다. 장애물이 있 www.acmicpc.net 링크로 이동하기 귀찮은 분들을 위한 문제 캡쳐 풀이 코드 # 1차 시도 -> 런타임 에러 visited 숫자가 커서 방문할 수 없지만, 벽으로 가로 막혀 나중에 말처럼 이동해야 하는 경우 import sys from collections import deque K = int(sys.stdin.readline().strip()) W, H = m..
백준 2440 별찍기3 자바 풀이 난이도 : 브론즈5 풀이일 : 05055 https://www.acmicpc.net/problem/2440 2440번: 별 찍기 - 3 첫째 줄에는 별 N개, 둘째 줄에는 별 N-1개, ..., N번째 줄에는 별 1개를 찍는 문제 www.acmicpc.net 링크로 이동하기 귀찮은 분들을 위한 문제 캡쳐 풀이 코드 import java.util.*; public class Main { public static void main(String[] args) { Scanner scan = new Scanner(System.in); int n = scan.nextInt(); scan.close(); String star = ""; for(int i = n; i > 0; i--) { for(int j = 0; j..
백준 1918 후위 표기식 파이썬 풀이 난이도 : 골드2 풀이일 : 03057 https://www.acmicpc.net/problem/1918 1918번: 후위 표기식 첫째 줄에 중위 표기식이 주어진다. 단 이 수식의 피연산자는 알파벳 대문자로 이루어지며 수식에서 한 번씩만 등장한다. 그리고 -A+B와 같이 -가 가장 앞에 오거나 AB와 같이 *가 생략되는 등의 www.acmicpc.net 링크로 이동하기 귀찮은 분들을 위한 문제 캡쳐 1차 시도 오답 import sys w = sys.stdin.readline() result = '' stack = [] for i in w: if i in '+-*/()': if i in '+-': if i == '+': while stack and stack[-1] in '-*/': result += st..
백준 2439 별찍기2 자바 풀이 난이도 : 브론즈5 풀이일 : 05033 https://www.acmicpc.net/problem/2439 2439번: 별 찍기 - 2 첫째 줄에는 별 1개, 둘째 줄에는 별 2개, N번째 줄에는 별 N개를 찍는 문제 하지만, 오른쪽을 기준으로 정렬한 별(예제 참고)을 출력하시오. www.acmicpc.net 링크로 이동하기 귀찮은 분들을 위한 문제 캡쳐 풀이 코드 import java.util.*; public class Main { public static void main(String[] args) { Scanner scan = new Scanner(System.in); int n = scan.nextInt(); scan.close(); String star = ""; String space = "..
백준 1238 파티 파이썬 풀이, 반례 난이도 : 골드3 풀이일 : 05092 https://www.acmicpc.net/problem/1238 1238번: 파티 첫째 줄에 N(1 ≤ N ≤ 1,000), M(1 ≤ M ≤ 10,000), X가 공백으로 구분되어 입력된다. 두 번째 줄부터 M+1번째 줄까지 i번째 도로의 시작점, 끝점, 그리고 이 도로를 지나는데 필요한 소요시간 Ti가 들어 www.acmicpc.net 링크로 이동하기 귀찮은 분들을 위한 문제 캡쳐 1차 시도 오답 -> 시간초과 import sys from collections import deque N, M, X = map(int, sys.stdin.readline().split()) load = deque([] for _ in range(N+1)) for _ in range..
백준 2439 별찍기2 자바스크립트 풀이 난이도 : 브론즈5 풀이일 : 04307 https://www.acmicpc.net/problem/2439 2439번: 별 찍기 - 2 첫째 줄에는 별 1개, 둘째 줄에는 별 2개, N번째 줄에는 별 N개를 찍는 문제 하지만, 오른쪽을 기준으로 정렬한 별(예제 참고)을 출력하시오. www.acmicpc.net 링크로 이동하기 귀찮은 분들을 위한 문제 캡쳐 풀이 코드 let input = require('fs').readFileSync('/dev/stdin').toString() let star = '' let space = '' for (let i = 1; i
백준 2438 별찍기1 자바 풀이 난이도 : 브론즈5 풀이일 : 05033 https://www.acmicpc.net/problem/2438 2438번: 별 찍기 - 1 첫째 줄에는 별 1개, 둘째 줄에는 별 2개, N번째 줄에는 별 N개를 찍는 문제 www.acmicpc.net 링크로 이동하기 귀찮은 분들을 위한 문제 캡쳐 풀이 코드 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scan = new Scanner(System.in); int n = scan.nextInt(); String star = ""; scan.close(); for(int i = 1; i
백준 12851 숨바꼭질2 파이썬 풀이, 반례 난이도 : 골드4 풀이일 : 05092 https://www.acmicpc.net/problem/12851 12851번: 숨바꼭질 2수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 때 www.acmicpc.net링크로 이동하기 귀찮은 분들을 위한 문제 캡쳐1차 시도 오답 -> 76% 틀렸습니다import sys from collections import deque N, K = map(int, sys.stdin.readline().split()) visited = [100001] * 100001 count = 0 mini = 1000..
백준 25314 코딩은 체육과목 입니다 자바 풀이 난이도 : 브론즈5 풀이일 : 05033 https://www.acmicpc.net/problem/25314 25314번: 코딩은 체육과목 입니다 오늘은 혜아의 면접 날이다. 면접 준비를 열심히 해서 앞선 질문들을 잘 대답한 혜아는 이제 마지막으로 칠판에 직접 코딩하는 문제를 받았다. 혜아가 받은 문제는 두 수를 더하는 문제였다. C++ www.acmicpc.net 링크로 이동하기 귀찮은 분들을 위한 문제 캡쳐 풀이 코드 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); String str = "..
백준 3665 최종순위 파이썬 풀이 난이도 : 골드1 풀이일 : 05081 https://www.acmicpc.net/problem/3665 3665번: 최종 순위 올해 ACM-ICPC 대전 인터넷 예선에는 총 n개의 팀이 참가했다. 팀은 1번부터 n번까지 번호가 매겨져 있다. 놀랍게도 올해 참가하는 팀은 작년에 참가했던 팀과 동일하다. 올해는 인터넷 예선 본부에 www.acmicpc.net 링크로 이동하기 귀찮은 분들을 위한 문제 캡쳐 1차 시도 오답 import sys from collections import deque T = int(sys.stdin.readline().strip()) for _ in range(T): n = int(sys.stdin.readline().strip()) # 팀 수 last = list(map(int,..
백준 2438 별찍기1 자바스크립트 풀이 난이도 : 브론즈5 풀이일 : 04307 https://www.acmicpc.net/problem/2438 2438번: 별 찍기 - 1 첫째 줄에는 별 1개, 둘째 줄에는 별 2개, N번째 줄에는 별 N개를 찍는 문제 www.acmicpc.net 링크로 이동하기 귀찮은 분들을 위한 문제 캡쳐 풀이 코드 let input = require('fs').readFileSync('/dev/stdin').toString() let star = "" for (let i = 0; i < input; i++) { star += '*' console.log(star) } 느낀점 처음 입력 받는 과정이 복잡해서 몇 문제를 풀면서 적응했다. 별찍기는 시리즈 같아서 어떤 언어로 풀이를 시도하건 몇 문제를 같이 풀어보게 되는 ..
백준 25304 영수증 자바 풀이 난이도 : 브론즈5 풀이일 : 04241 https://www.acmicpc.net/problem/25304 25304번: 영수증 준원이는 저번 주에 살면서 처음으로 코스트코를 가 봤다. 정말 멋졌다. 그런데, 몇 개 담지도 않았는데 수상하게 높은 금액이 나오는 것이다! 준원이는 영수증을 보면서 정확하게 계산된 것 www.acmicpc.net 링크로 이동하기 귀찮은 분들을 위한 문제 캡쳐 풀이 코드 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int total = sc.nextInt(); int n = sc.nextInt(); i..
백준 9470 Strahler 순서 파이썬 풀이 난이도 : 골드3 풀이일 : 05077 https://www.acmicpc.net/problem/9470 9470번: Strahler 순서 지질학에서 하천계는 유향그래프로 나타낼 수 있다. 강은 간선으로 나타내며, 물이 흐르는 방향이 간선의 방향이 된다. 노드는 호수나 샘처럼 강이 시작하는 곳, 강이 합쳐지거나 나누어지는 곳 www.acmicpc.net 링크로 이동하기 귀찮은 분들을 위한 문제 캡쳐 오답 코드 import sys from collections import deque T = int(sys.stdin.readline().strip()) for _ in range(T): K, M, P = map(int, sys.stdin.readline().split()) node = [0] * (M + 1)..
백준 8393 합 자바 풀이 난이도 : 브론즈5 풀이일 : 04241 https://www.acmicpc.net/problem/8393 8393번: 합 n이 주어졌을 때, 1부터 n까지 합을 구하는 프로그램을 작성하시오. www.acmicpc.net 링크로 이동하기 귀찮은 분들을 위한 문제 캡쳐 풀이 코드 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int temp = 0; for(int i = 1; i
백준 1516 게임개발 파이썬 풀이 난이도 : 골드3 풀이일 : 05066 https://www.acmicpc.net/problem/1516 1516번: 게임 개발 첫째 줄에 건물의 종류 수 N(1 ≤ N ≤ 500)이 주어진다. 다음 N개의 줄에는 각 건물을 짓는데 걸리는 시간과 그 건물을 짓기 위해 먼저 지어져야 하는 건물들의 번호가 주어진다. 건물의 번호는 1부 www.acmicpc.net 링크로 이동하기 귀찮은 분들을 위한 문제 캡쳐 풀이 코드 import sys from collections import deque N = int(sys.stdin.readline().strip()) time = [0] * N # 개별 건물 건설 시간 total = [0] * N # 개별 건물 누적 시간 count = [0] * N # 선행 건물 개..
백준 10950 A+B -3 자바 풀이 난이도 : 브론즈5 풀이일 : 04241 https://www.acmicpc.net/problem/10950 10950번: A+B - 3 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오. www.acmicpc.net 링크로 이동하기 귀찮은 분들을 위한 문제 캡쳐 풀이 코드 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); for (int i = 0; i < n; i++) { int a = sc.nextInt(); int b = sc.nextInt(); System.out..
백준 2056 작업 파이썬 풀이 난이도 : 골드4 풀이일 : 05055 https://www.acmicpc.net/problem/2056 2056번: 작업 수행해야 할 작업 N개 (3 ≤ N ≤ 10000)가 있다. 각각의 작업마다 걸리는 시간(1 ≤ 시간 ≤ 100)이 정수로 주어진다. 몇몇 작업들 사이에는 선행 관계라는 게 있어서, 어떤 작업을 수행하기 위해 www.acmicpc.net 링크로 이동하기 귀찮은 분들을 위한 문제 캡쳐 풀이코드 # 입력 시, temp 리스트 활용으로 project 삽입 # 새 누적 시간과 현재 누적 시간을 비교, 큰 값 저장 # 선행 작업 완료할 때 마다 count - 1 # count 0 되면 작업 시작 -> queue 추가 # 최종 누적 시간 중 가장 큰 값 출력 import sys from col..
백준 2739 구구단 자바 풀이 난이도 : 브론즈5 풀이일 : 04241 https://www.acmicpc.net/problem/2739 2739번: 구구단 N을 입력받은 뒤, 구구단 N단을 출력하는 프로그램을 작성하시오. 출력 형식에 맞춰서 출력하면 된다. www.acmicpc.net 링크로 이동하기 귀찮은 분들을 위한 문제 캡쳐 풀이 코드 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int a = sc.nextInt(); for(int i=1; i < 10; i ++) { System.out.println(a+" * "+i+" = "+a*i); } } } ..