본문 바로가기

알고리즘

(171)
백준 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); } } } ..
백준 2252 줄세우기 파이썬 풀이 난이도 : 골드3 풀이일 : 05044 https://www.acmicpc.net/problem/2252 2252번: 줄 세우기 첫째 줄에 N(1 ≤ N ≤ 32,000), M(1 ≤ M ≤ 100,000)이 주어진다. M은 키를 비교한 회수이다. 다음 M개의 줄에는 키를 비교한 두 학생의 번호 A, B가 주어진다. 이는 학생 A가 학생 B의 앞에 서야 한다는 의 www.acmicpc.net 링크로 이동하기 귀찮은 분들을 위한 문제 캡쳐 풀이 코드 : deque 두 개 사용, 최초풀이 import sys from collections import deque N, M = map(int, sys.stdin.readline().split()) people = [[] for _ in range(N+1)] min..
백준 2480 주사위 세개 자바 풀이 난이도 : 브론즈4 풀이일 : 04123 https://www.acmicpc.net/problem/2480 2480번: 주사위 세개1에서부터 6까지의 눈을 가진 3개의 주사위를 던져서 다음과 같은 규칙에 따라 상금을 받는 게임이 있다. 같은 눈이 3개가 나오면 10,000원+(같은 눈)×1,000원의 상금을 받게 된다. 같은 눈이 2개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(); int b = sc.nextInt(..
백준 1005 ACM Craft 파이썬 풀이 난이도 : 골드3 풀이일 : 05033 https://www.acmicpc.net/problem/1005 1005번: ACM Craft 첫째 줄에는 테스트케이스의 개수 T가 주어진다. 각 테스트 케이스는 다음과 같이 주어진다. 첫째 줄에 건물의 개수 N과 건물간의 건설순서 규칙의 총 개수 K이 주어진다. (건물의 번호는 1번부 www.acmicpc.net 링크로 이동하기 귀찮은 분들을 위한 문제 캡쳐 1차 시도 오답 -> 4% 틀렸습니다 import sys from collections import deque def sol(queue): while queue: i = queue.popleft() for j in child[i]: total[j] = max(total[i] + time[j], total[j..
백준 1001 A-B 자바스크립트 풀이 난이도 : 브론즈5 풀이일 : 04307 https://www.acmicpc.net/problem/1001 1001번: A-B 두 정수 A와 B를 입력받은 다음, A-B를 출력하는 프로그램을 작성하시오. www.acmicpc.net 링크로 이동하기 귀찮은 분들을 위한 문제 캡쳐 풀이 코드 let input = require('fs').readFileSync('/dev/stdin').toString().split(' ') let a = parseInt(input[0]) let b = parseInt(input[1]) console.log(a-b) 느낀점 입력 받을 때, input을 배열로 받고, 숫자를 인덱스로 접근해서 입력받았다. 처음보는 형식이라서 신기하기도 하고, 자주 안쓰면 잊을 것 같아서 가끔 한..
백준 2525 오븐 시계 자바 풀이 난이도 : 브론즈5 풀이일 : 04123 https://www.acmicpc.net/problem/2525 2525번: 오븐 시계 첫째 줄에 종료되는 시각의 시와 분을 공백을 사이에 두고 출력한다. (단, 시는 0부터 23까지의 정수, 분은 0부터 59까지의 정수이다. 디지털 시계는 23시 59분에서 1분이 지나면 0시 0분이 된다.) www.acmicpc.net 링크로 이동하기 귀찮은 분들을 위한 문제 캡쳐 풀이 코드 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int h = sc.nextInt(); int m = sc.next..
백준 11047 동전 0 파이썬 풀이 난이도 : 실버4 풀이일 : 05011 https://www.acmicpc.net/problem/11047 11047번: 동전 0 첫째 줄에 N과 K가 주어진다. (1 ≤ N ≤ 10, 1 ≤ K ≤ 100,000,000) 둘째 줄부터 N개의 줄에 동전의 가치 Ai가 오름차순으로 주어진다. (1 ≤ Ai ≤ 1,000,000, A1 = 1, i ≥ 2인 경우에 Ai는 Ai-1의 배수) www.acmicpc.net 링크로 이동하기 귀찮은 분들을 위한 문제 캡쳐 1차 시도 오답 -> 시간초과 # 최초 시도 while 사용 -> 71% 시간초과 # 몫을 먼저 더해주고 K 재할당해야 코인 세기 가능 import sys N, K = map(int, sys.stdin.readline().split()) coin =..
백준 1000 A+B 자바스크립트 풀이 난이도 : 브론즈5 풀이일 : 04307 https://www.acmicpc.net/problem/1000 1000번: A+B 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오. www.acmicpc.net 링크로 이동하기 귀찮은 분들을 위한 문제 캡쳐 풀이 코드 let input = require('fs').readFileSync('/dev/stdin').toString().split(' ') let a = parseInt(input[0]) let b = parseInt(input[1]) console.log(a+b) 느낀점 파이썬처럼 split() 속에 아무것도 적지 않아도 되는지, 그냥 input으로 받고 형변환 하는 방법은 뭐가 있는지 궁금해서 이것 저것 해보느라 많이 틀..
백준 2884 알람 시계 자바 풀이 난이도 : 브론즈5 풀이일 : 04123 https://www.acmicpc.net/problem/2884 2884번: 알람 시계 상근이는 매일 아침 알람을 듣고 일어난다. 알람을 듣고 바로 일어나면 다행이겠지만, 항상 조금만 더 자려는 마음 때문에 매일 학교를 지각하고 있다. 상근이는 모든 방법을 동원해보았지만, www.acmicpc.net 링크로 이동하기 귀찮은 분들을 위한 문제 캡쳐 1차 시도 오답 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int h = sc.nextInt(); int m = sc.nextInt(); if..
백준 1463 1로 만들기 파이썬 풀이 난이도 : 실버3 풀이일 : 05011 https://www.acmicpc.net/problem/1463 1463번: 1로 만들기 첫째 줄에 1보다 크거나 같고, 106보다 작거나 같은 정수 N이 주어진다. www.acmicpc.net 링크로 이동하기 귀찮은 분들을 위한 문제 캡쳐 풀이 코드 # 방문 여부 확인 배열 생성 # 각 숫자를 인덱스로 활용 # 3,2로 나누어 떨어지는 수, 몫 기록 # 숫자 방문 시, 현재까지의 변환 횟수 기록 # 처음 1부터 시작 -> 출력시 -1 import sys from collections import deque N = int(sys.stdin.readline().strip()) visited = [0] * (N + 1) queue = deque([N]) visited..