목록CodingTest/Java (342)
기록방
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/cTfyOn/btrU6ZeaYY6/L3pbbhKekZdUk1taweZri0/img.png)
👉 문제링크 1057번: 토너먼트 김지민은 N명이 참가하는 스타 토너먼트에 진출했다. 토너먼트는 다음과 같이 진행된다. 일단 N명의 참가자는 번호가 1번부터 N번까지 배정받는다. 그러고 난 후에 서로 인접한 번호끼리 스타를 www.acmicpc.net 🔸 문제 분석 🔸 n명의 참가자 중에 두 사람의 번호를 입력받는다. 2명씩 경기를 진행하며 이기면 올라간다. n이 홀수여서 혼자 남는 마지막 선수는 부전승으로 올라간다. 참가자 수 n이 1이 될때까지 반복한다. 두 사람은 무조건 승리한다. 두 사람이 만나는 라운드 수를 출력한다. 만나지 못하는 경우는 -1을 출력하지만, 그런 경우는 없다. 🔸 코드 🔸 import java.util.ArrayList; import java.util.Scanner; publi..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/3zJRM/btrU15Mn7Qi/tUXRIZZVMDFORByk9pLukk/img.png)
👉 문제링크 1004번: 어린 왕자 입력의 첫 줄에는 테스트 케이스의 개수 T가 주어진다. 그 다음 줄부터 각각의 테스트케이스에 대해 첫째 줄에 출발점 (x1, y1)과 도착점 (x2, y2)이 주어진다. 두 번째 줄에는 행성계의 개수 n이 주 www.acmicpc.net 🔸 문제 분석 🔸 시작점과 끝점을 선으로 이을때 최소로 통과하는 행성계의 수를 출력한다. 반드시 통과해야하는 행성계는 시작점, 끝점 중 하나를 원 안에 포함하고 다른 한 점이 밖에 있어야한다. 🔸 코드 🔸 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int t ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/rU0kA/btrUYpqZJAO/FvawKvzzK3Y0ic1f2eyn01/img.png)
👉 문제링크 1205번: 등수 구하기 첫째 줄에 N, 태수의 새로운 점수, 그리고 P가 주어진다. P는 10보다 크거나 같고, 50보다 작거나 같은 정수, N은 0보다 크거나 같고, P보다 작거나 같은 정수이다. 그리고 모든 점수는 2,000,000,000보 www.acmicpc.net 🔸 문제 분석 🔸 점수의 개수 n, 태수의 점수, 랭킹의 최대 수 p가 주어진다. n개의 점수가 비오름차순(중복 있는 내림차순)으로 주어진다. 태수의 점수가 랭킹의 몇 등인지 출력한다. 🔸 코드 🔸 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); in..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/YGOru/btrUTZyZAe9/GQ0Kw3XfPEBBOv3Df1aepK/img.png)
👉 문제링크 11656번: 접미사 배열 첫째 줄에 문자열 S가 주어진다. S는 알파벳 소문자로만 이루어져 있고, 길이는 1,000보다 작거나 같다. www.acmicpc.net 🔸 문제 분석 🔸 입력된 문자열의 접미사를 사전순으로 정렬해 출력한다. 문자열의 인덱스를 0부터 끝, 1부터 끝, 2부터 끝 ... 형식으로 접미사를 뽑아낸다. 🔸 코드 🔸 import java.util.Arrays; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); String str = sc.next(); String[] arr = new String[str..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/uQ1DM/btrUOMUf4vy/NFePteuU3CixZ72epeBY61/img.png)
👉 문제링크 13305번: 주유소 표준 입력으로 다음 정보가 주어진다. 첫 번째 줄에는 도시의 개수를 나타내는 정수 N(2 ≤ N ≤ 100,000)이 주어진다. 다음 줄에는 인접한 두 도시를 연결하는 도로의 길이가 제일 왼쪽 도로부터 N-1 www.acmicpc.net 🔸 문제 분석 🔸 n개의 마을이 일렬로 주어지며 n-1개의 도로가 있다. 마을마다 1L당 기름값이 주어지며, 도로 1km당 기름 1L가 필요하다. 최종 기름값의 최소값을 출력한다. 전형적인 그리디 알고리즘 문제이다. 가장 가성비 좋게 기름을 구입하기 위해서, 최종 도시에서 거꾸로 빼는 방식으로 계산한다. 도로의 길이와 도시 별 기름값의 최대 값이 10억이므로 long형을 사용한다. 🔸 코드 🔸 import java.io.BufferedR..