반응형

Coding Test Study/Backjoon 8

[Java] 1826번 - 연료 채우기

https://www.acmicpc.net/problem/1826 1826번: 연료 채우기첫째 줄에 주유소의 개수 N(1 ≤ N ≤ 10,000)가 주어지고 두 번째 줄부터 N+1번째 줄 까지 주유소의 정보가 주어진다. 주유소의 정보는 두개의 정수 a,b로 이루어 져 있는데 a(1 ≤ a ≤ 1,000,000)는 성경www.acmicpc.net  🚗 문제성경이는 트럭을 정글 속에서 운전하다가 트럭의 연료탱크에 갑자기 구멍이 나서 1km를 가는데 1L의 연료가 새 나가게 되었다. 이것을 고치기 위해서는 가장 가까운 마을에 가야 한다. 그런데 그냥 가다가는 중간에 연료가 다 빠질 수가 있다. 다행스럽게도 정글 곳곳에 연료를 채울 수 있는 주유소가 N개 있다. 그런데 정글 속에서 중간에 차를 멈추는 행위는 ..

[Java] 11725번 트리의 부모 찾기

1. 문제https://www.acmicpc.net/problem/11725 11725번: 트리의 부모 찾기루트 없는 트리가 주어진다. 이때, 트리의 루트를 1이라고 정했을 때, 각 노드의 부모를 구하는 프로그램을 작성하시오.www.acmicpc.net      2. 코드 구현 부분예를들어, 루트 노트 1에 방문하였을 때루트 노드 1의 인덱스는 0이다. 따라서 0번 인덱스에는 3과 5가 존재한다. 즉, 4와 6이 인접한 노드인 것이다.1이 루트 노드이므로 4와 6은 자식 노드이다.1번 노드에 방문하였으므로 visited 배열에서 인덱스 0은 true로 변환한다.예를 들어, 노드 4에 방문하였을 때노드 4의 인덱스는 3이다. 현재 인덱스 3에는 0, 1, 6의 데이터가 존재한다. 즉 인접한 노드는 1,2,..

[Coding/Backjoon] 계산기 프로그램

1. 문제 https://www.acmicpc.net/problem/5613 5613번: 계산기 프로그램 입력의 각 줄에는 숫자와 +, -, *, /, =중 하나가 교대로 주어진다. 첫 번째 줄은 수이다. 연산자의 우선 순위는 생각하지 않으며, 입력 순서대로 계산을 하고, =가 주어지면, 그때까지의 결과를 출 www.acmicpc.net 2. 코드 구현 부분 Scanner을 사용하여 수와 기호를 입력받는다. 무한루프 속에서 탈출 조건은 입력받은 데이터가 "=" 일 때이다. 만약 기호가 들어왔다면 그 다음에 데이터를 입력받아서 기호에 알맞는 연산을 수행한다. import java.util.Scanner; class Main{ public static void main(String[] args) { Scan..

[Coding/Backjoon] 2830번 행성 X3

https://www.acmicpc.net/problem/2830 2830번: 행성 X3 상근이는 초등학교 졸업 여행으로 외계 행성 X3에 방문했었다. 이 행성에 사는 사람들의 이름은 모두 자연수이다. 행성의 거주민은 모두 서로를 알고 있다. 두 X3인은 그들의 친밀도를 자신의 이 www.acmicpc.net 1. 문제 풀이 방법 이 문제를 이해하기까지 너무 어려웠다. 이 문제에서 원하는 것은 3명 이상의 이름이 주어지면 각각 2명씩 모두 비교하여 나온 친밀도를 다 합하는 것이 정답이였다. XOR 연산을 하기 때문에 (각 자리의 1의 갯수) * (각 자리의 0의 갯수) * 2^i 를 하여 나온 모든 값들의 합이 정답이다. 각 자리에 존재하는 1의 갯수를 one 배열에 저장한다. 예를 들어 2^1 자리에 ..

[Coding/Backjoon] 10807번 개수 세기

https://www.acmicpc.net/problem/10807 10807번: 개수 세기 첫째 줄에 정수의 개수 N(1 ≤ N ≤ 100)이 주어진다. 둘째 줄에는 정수가 공백으로 구분되어져있다. 셋째 줄에는 찾으려고 하는 정수 v가 주어진다. 입력으로 주어지는 정수와 v는 -100보다 크거 www.acmicpc.net 1. 문제 풀이 방법 입력받은 문자열은 공백으로 구분되어져 있으므로 분리한 후 배열에 저장하고 입력된 V 와 일치하면 cnt 변수를 1씩 증가시킨다. (1) 방법 1 반복문을 사용하여 개수 찾기 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Sca..

[Coding/Backjoon] 9012번 괄호

https://www.acmicpc.net/problem/9012 9012번: 괄호 괄호 문자열(Parenthesis String, PS)은 두 개의 괄호 기호인 ‘(’ 와 ‘)’ 만으로 구성되어 있는 문자열이다. 그 중에서 괄호의 모양이 바르게 구성된 문자열을 올바른 괄호 문자열(Valid PS, VPS)이라고 www.acmicpc.net 1. 구현할 방식 "(" 가 입력된다면 Stack에 데이터를 삽입하고 ")" 이 입력된다면 Stack에 저장된 데이터를 한 개 씩 pop() 한다. 이때 Stack에 아무런 데이터가 없는 상태에서 ")"이 입력된다면 VPS가 아예 불가능하기 때문에 NO를 출력한다. 2. 코드 구현 부분 import java.util.ArrayList; import java.util...

[Coding/Backjoon] 1021번 회전하는 큐

문제 링크 https://www.acmicpc.net/problem/1021 1021번: 회전하는 큐 첫째 줄에 큐의 크기 N과 뽑아내려고 하는 수의 개수 M이 주어진다. N은 50보다 작거나 같은 자연수이고, M은 N보다 작거나 같은 자연수이다. 둘째 줄에는 지민이가 뽑아내려고 하는 수의 위치가 www.acmicpc.net 1. 구현할 방식 큐의 크기 N과 뽑아내려고 하는 갯수 M을 입력받는다. 큐의 크기만큼 자연수가 들어간 큐와 뽑아내려고 하는 수가 들어가있는 큐를 생성한다. 이후 자연수가 들어간 큐에 N까지의 자연수를 추가하고 뽑아낼 수를 차례대로 다른 큐에 추가한다. while 반복문을 사용하여 자연수 큐와 뽑아낼 수 큐 에서 하나씩 poll 하여 비교하고 만약 다르다면 자연수 큐에서 poll 한..

[Coding/Backjoon] 25556번 포스택

1. 구현할 방식 4개의 스택에 순열을 차례대로 넣는다. 이때 먼저 들어간 데이터보다 크면 해당 스택에 데이터가 들어가고 만약 작다면 그 다음 스택에 데이터를 집어넣는다. 이때 4개의 스택에 모두 들어가지 못한 n번째 데이터의 인덱스값에 true 를 넣어준다. 만약 스택에 데이터 삽입이 끝나고 ture / false 배열에서 true 가 존재한다면 순열을 정렬하지 못한 것이다. 2. 코드 import java.util.ArrayList; import java.util.Scanner; import java.util.Stack; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int..

반응형