본문 바로가기

CodingTest14

백준 1920번, 10815번-수 찾기, 숫자카드(JAVA) 1920번과 10815번 유형이 유사해서 같이 작성했습니다. 이진탐색(Binary Search) 알고리즘을 활용하는 문제입니다. 처음에 인텔리J상에서는 잘만 되는데 제출하니 자꾸 시간초과가 떠서 Scanner의 문제인가 하고 삽질을 했는데 알고보니 탐색법이 잘못되었더군요..(부족한 알고리즘 지식이 여기서-.-...) 저와 같은 분들을 위해 씁니다. 도움이 되셨으면 좋겠네요. -1920번: 수 찾기 www.acmicpc.net/problem/1920 1920번: 수 찾기 첫째 줄에 자연수 N(1≤N≤100,000)이 주어진다. 다음 줄에는 N개의 정수 A[1], A[2], …, A[N]이 주어진다. 다음 줄에는 M(1≤M≤100,000)이 주어진다. 다음 줄에는 M개의 수들이 주어지는데, 이 수들이 A안�.. 2020. 9. 11.
백준 10814번 -나이순 정렬(JAVA) www.acmicpc.net/problem/10814 10814번: 나이순 정렬 온라인 저지에 가입한 사람들의 나이와 이름이 가입한 순서대로 주어진다. 이때, 회원들을 나이가 증가하는 순으로, 나이가 같으면 먼저 가입한 사람이 앞에 오는 순서로 정렬하는 프로그램을 � www.acmicpc.net N개 만큼 나이와 이름을 입력받고, (예: 20 Chulsoo) 나이 순으로 출력합니다. 나이가 같을 경우엔 가입순(입력받은 순)으로 출력합니다. 찾아보니 입력을 이차원 배열로 받아서 많이 하시는데 저는 String배열로 했습니다. 입력 방식에 따라 달라지는 부분이 있으니 두 방법 모두 소개해보겠습니다. String 배열로 처리하는 방법 import java.util.*; public class Main { pu.. 2020. 9. 10.
백준 1181번-단어 정렬(JAVA) www.acmicpc.net/problem/1181 1181번: 단어 정렬 첫째 줄에 단어의 개수 N이 주어진다. (1≤N≤20,000) 둘째 줄부터 N개의 줄에 걸쳐 알파벳 소문자로 이루어진 단어가 한 줄에 하나씩 주어진다. 주어지는 문자열의 길이는 50을 넘지 않는다. www.acmicpc.net N개의 단어를 입력받고 그 단어들을 길이가 짧은 순으로, 길이가 같다면 사전 순으로 정렬하는 문제입니다. 중복되는 단어가 있다면 하나만 출력합니다. HashMap을 사용하면 깔끔하게 구현할 수 있습니다. 저는 정렬 후 출력할 때 중복되는 값은 출력되지 않게 하는 방식으로 구현했는데 두 방법 모두 작성해보겠습니다. 제가 쓴 코드입니다. - HashMap 없이 구현한 방식 import java.util.*; p.. 2020. 9. 10.
백준 1427번- 소트인사이드(JAVA) www.acmicpc.net/problem/1427 1427번: 소트인사이드 첫째 줄에 정렬하고자하는 수 N이 주어진다. N은 1,000,000,000보다 작거나 같은 자연수이다. www.acmicpc.net 주어진 수의 각 자리수를 내림차순으로 정렬하는 문제입니다. 좀 더 깔끔하게 풀 수 있지 않나 싶네요. 제가 푼 코드 import java.util.Scanner; public class Main { public static void main(String[] args){ // 1427번 소트인사이드 Scanner sc = new Scanner(System.in); int N= sc.nextInt(); int amount = (String.valueOf(N).split("")).length; int[].. 2020. 9. 9.