코딩테스트/백준27 [백준 1181] 단어 정렬 - Java 문제 알파벳 소문자로 이루어진 N개의 단어가 들어오면 아래와 같은 조건에 따라 정렬하는 프로그램을 작성하시오. 1. 길이가 짧은 것부터 2. 길이가 같으면 사전 순으로 입력 첫째 줄에 단어의 개수 N이 주어진다. (1 ≤ N ≤ 20,000) 둘째 줄부터 N개의 줄에 걸쳐 알파벳 소문자로 이루어진 단어가 한 줄에 하나씩 주어진다. 주어지는 문자열의 길이는 50을 넘지 않는다. 출력 조건에 따라 정렬하여 단어들을 출력한다. 단, 같은 단어가 여러 번 입력된 경우에는 한 번씩만 출력한다. ✨ 참고 https://www.delftstack.com/ko/howto/java/sort-string-srray-alphabetically-in-java/ Java에서 문자열 배열을 알파벳순으로 정렬 이 게시물은 Java.. 2022. 12. 17. [백준 11650] 좌표 정렬하기 - Java 문제 2차원 평면 위의 점 N개가 주어진다. 좌표를 x좌표가 증가하는 순으로, x좌표가 같으면 y좌표가 증가하는 순서로 정렬한 다음 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 점의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개의 줄에는 i번점의 위치 x와 yi가 주어진다. (-100,000 ≤ xi, yi ≤ 100,000) 좌표는 항상 정수이고, 위치가 같은 두 점은 없다. 출력 첫째 줄부터 N개의 줄에 점을 정렬한 결과를 출력한다. ❓ 계속 고민해봤는데 정말 답이 안 나왔다. 0행에 x값, 1행에 y값을 저장하는 2차원 배열로 풀어보자니 0행 배열을 정렬하면 0행 배열과 1행 배열의 연관성이 끊김. 그래서 아예 String으로 입력 받아 [ic]Arrays.sort()[.. 2022. 12. 17. [백준 2108] 통계학 - Java 문제 수를 처리하는 것은 통계학에서 상당히 중요한 일이다. 통계학에서 N개의 수를 대표하는 기본 통계값에는 다음과 같은 것들이 있다. 단, N은 홀수라고 가정하자. 1. 산술평균 : N개의 수들의 합을 N으로 나눈 값 2. 중앙값 : N개의 수들을 증가하는 순서로 나열했을 경우 그 중앙에 위치하는 값 3. 최빈값 : N개의 수들 중 가장 많이 나타나는 값 4. 범위 : N개의 수들 중 최댓값과 최솟값의 차이 N개의 수가 주어졌을 때, 네 가지 기본 통계값을 구하는 프로그램을 작성하시오. 입력 첫째 줄에 수의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 단, N은 홀수이다. 그 다음 N개의 줄에는 정수들이 주어진다. 입력되는 정수의 절댓값은 4,000을 넘지 않는다. 출력 첫째 줄에는 산술평균을 출.. 2022. 12. 11. [백준 2751] 수 정렬하기 2 - Java 문제 N개의 수가 주어졌을 때, 이를 오름차순으로 정렬하는 프로그램을 작성하시오. 입력 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 절댓값이 1,000,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. 출력 첫째 줄부터 N개의 줄에 오름차순으로 정렬한 결과를 한 줄에 하나씩 출력한다. ❓ 단순히 [ic]Arrays.sort()[/ic] 를 이용하면 시간초과가 나나? 싶어서 잠깐 고민했지만 의외로 쉽게 통과 돼서 놀랐다. 하지만 아무래도 더 간편한 방법이 있을 것 같아 찾아봤다. ❗ int 배열 대신 boolean 배열을 사용한다. 풀이 1 첫째 줄에서 입력 받은 N 만큼의 크기를 가지는 int 배열 생성 for문을 돌면.. 2022. 12. 4. [백준 2869] 달팽이는 올라가고 싶다 - Java 문제 땅 위에 달팽이가 있다. 이 달팽이는 높이가 V미터인 나무 막대를 올라갈 것이다. 달팽이는 낮에 A미터 올라갈 수 있다. 하지만, 밤에 잠을 자는 동안 B미터 미끄러진다. 또, 정상에 올라간 후에는 미끄러지지 않는다. 달팽이가 나무 막대를 모두 올라가려면, 며칠이 걸리는지 구하는 프로그램을 작성하시오. 입력 첫째 줄에 세 정수 A, B, V가 공백으로 구분되어서 주어진다. (1 ≤ B < A ≤ V ≤ 1,000,000,000) 출력 첫째 줄에 달팽이가 나무 막대를 모두 올라가는데 며칠이 걸리는지 출력한다. ❓ 알고리즘은 금방 해결했는데 시간 초과에서 고민했던 문제. 사실 처음엔 정상에 올라간 후에는 미끄러지지 않는다. 라는 조건을 고려하지 않아 원하는 값이 나오지 않았었다. 문제는 잘 읽어야 한다.. 2022. 11. 14. [백준 2563] 색종이 -Java 문제 가로, 세로의 크기가 각각 100인 정사각형 모양의 흰색 도화지가 있다. 이 도화지 위에 가로, 세로의 크기가 각각 10인 정사각형 모양의 검은색 색종이를 색종이의 변과 도화지의 변이 평행하도록 붙인다. 이러한 방식으로 색종이를 한 장 또는 여러 장 붙인 후 색종이가 붙은 검은 영역의 넓이를 구하는 프로그램을 작성하시오. 예를 들어 흰색 도화지 위에 세 장의 검은색 색종이를 그림과 같은 모양으로 붙였다면 검은색 영역의 넓이는 260이 된다. 입력 첫째 줄에 색종이의 수가 주어진다. 이어 둘째 줄부터 한 줄에 하나씩 색종이를 붙인 위치가 주어진다. 색종이를 붙인 위치는 두 개의 자연수로 주어지는데 첫 번째 자연수는 색종이의 왼쪽 변과 도화지의 왼쪽 변 사이의 거리이고, 두 번째 자연수는 색종이의 아래.. 2022. 10. 28. [백준 2941] 크로아티아 알파벳 - Java (+23.09.05) https://www.acmicpc.net/problem/2941 2941번: 크로아티아 알파벳 예전에는 운영체제에서 크로아티아 알파벳을 입력할 수가 없었다. 따라서, 다음과 같이 크로아티아 알파벳을 변경해서 입력했다. 크로아티아 알파벳 변경 č c= ć c- dž dz= đ d- lj lj nj nj š s= ž z= www.acmicpc.net ❓ 금방 풀 수 있을 거라 생각했는데 자잘한 문제에 막혀서 몇 시간을 고생했다. 처음엔 [ic]System.in.read()[/ic]로 한 글자씩 입력 받도록 코드를 작성했는데, 그렇게 하니 \r, \n이 들어오는 경우도 생각해야 해서 코드가 난잡해져 [ic]BufferedReader[/ic]를 이용해 풀어보려 했다. 그렇게 이클립스로 코드를 작성하고 테스트 .. 2022. 10. 21. [백준 5622] 다이얼 - Java https://www.acmicpc.net/problem/5622 5622번: 다이얼 첫째 줄에 알파벳 대문자로 이루어진 단어가 주어진다. 단어의 길이는 2보다 크거나 같고, 15보다 작거나 같다. www.acmicpc.net ❓ 알파벳과 매칭되는 숫자를 찾는 데에서 고민을 많이 했다. 아무리 생각해봐도 if문(혹은 switch-case문)으로 알파벳을 구별해 숫자를 매칭하는 방법밖에 떠오르지 않았다. ❗ 근데 진짜 그렇게 푸는 게 맞았다(...). 다른 규칙이 있는 줄 알고 끙끙댔는데, 최대한 단순하게 생각해볼 필요가 있었다. 아직 문제를 많이 안 풀어봐서 뭐가 맞는 방법인지 알기 어려우니 더 열심히 풀어봐야 할 듯... ✨ 참고 https://st-lab.tistory.com/67 [백준] 5622번.. 2022. 10. 19. [백준 4673] 셀프 넘버 - Java (+) 🔗https://www.acmicpc.net/problem/4673 4673번: 셀프 넘버 셀프 넘버는 1949년 인도 수학자 D.R. Kaprekar가 이름 붙였다. 양의 정수 n에 대해서 d(n)을 n과 n의 각 자리수를 더하는 함수라고 정의하자. 예를 들어, d(75) = 75+7+5 = 87이다. 양의 정수 n이 주어졌을 때, www.acmicpc.net ❓ 처음엔 문제를 이해하는 것도 어려웠다. 셀프 넘버가 뭔진 대충 알겠는데, 이 수가 셀프 넘버인지 아닌지 대체 어떻게 알지? 식을 내가 새롭게 세워야 하나? 하지만 테스트 땐 검색을 못할텐데... 별의 별 생각을 다했다. ❗ 다시 생각해보니 그 수가 셀프넘버인지 아닌지 아는 건 필요 없었다. 필요했으면 그 방법을 문제에서 먼저 제시했겠지... .. 2022. 10. 18. 이전 1 2 3 다음