https://www.acmicpc.net/problem/1181 1181번: 단어 정렬 첫째 줄에 단어의 개수 N이 주어진다. (1 ≤ N ≤ 20,000) 둘째 줄부터 N개의 줄에 걸쳐 알파벳 소문자로 이루어진 단어가 한 줄에 하나씩 주어진다. 주어지는 문자열의 길이는 50을 넘지 않는다. www.acmicpc.net 첫 번째 줄에 n개의 단어를 나타내는 수가 있습니다. 그 수 만큼 단어가 나옵니다. 정렬의 조건은 두 가지 입니다. 1. 길이가 짧은 순서대로 2. 같은 길이는 사전 순서대로 그렇게 정렬해서 출력해주면 됩니다. * 여기서 같은 단어는 하나만 출력하면 됩니다. 해설 코드 import java.util.Comparator; import java.util.HashSet; import java..
https://www.acmicpc.net/problem/1427 난이도는 실버5 로 측정되어 있지만 자바에서 제공하는 라이브러리를 활용하면 아주 쉬운 문제이다. 전체 코드 입력은 Scanner로 받았으며, 입력된 n이라는 숫자의 길이를 쉽게 알아내기 위해 String으로 받았습니다. n의 길이만큼의 Integer 배열을 만들어서 각자리의 숫자들을 하나씩 넣습니다. 그리고 Arrays.sort를 활용해 정렬하는데, 이때 두 번째 인자로 Collections.reverseOrder()를 사용해 내림차순으로 정렬해줍니다. 스캐너를 만들어줍니다. 스캐너로 입력을 받는데, String으로 입력받습니다. Integer형 배열을 선언하고, 입력받은 n에 길이만큼 만들어 줍니다. 만들어진 배열 result만큼 반복하..
https://www.acmicpc.net/problem/11719 11719번: 그대로 출력하기 2 입력이 주어진다. 입력은 최대 100줄로 이루어져 있고, 알파벳 소문자, 대문자, 공백, 숫자로만 이루어져 있다. 각 줄은 100글자를 넘지 않으며, 빈 줄이 주어질 수도 있고, 각 줄의 앞 뒤에 공백이 www.acmicpc.net 그대로 출력하기 첫 번째와 다른 것은 빈 줄이 주어질 수도 있고, 각줄의 앞 뒤에 공백이 있을 수도 있다. 라는 것입니다. 그 외에는 똑같습니다. 스캐너를 이용해 입력을 받았고, 공백도 문자열로 받기 위해서 nextLine()으로 받았습니다. while 반복문으로 무한반복을 만들어 입력받은 것을 그대로 출력해주었고, 무한반복을 빠져나가기 위한 if문으로 hasNext()가 f..
https://www.acmicpc.net/problem/11721 11721번: 열 개씩 끊어 출력하기 첫째 줄에 단어가 주어진다. 단어는 알파벳 소문자와 대문자로만 이루어져 있으며, 길이는 100을 넘지 않는다. 길이가 0인 단어는 주어지지 않는다. www.acmicpc.net 전체 코드 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); String s = sc.next(); if(s.length()
https://www.acmicpc.net/problem/9012 9012번: 괄호 괄호 문자열(Parenthesis String, PS)은 두 개의 괄호 기호인 ‘(’ 와 ‘)’ 만으로 구성되어 있는 문자열이다. 그 중에서 괄호의 모양이 바르게 구성된 문자열을 올바른 괄호 문자열(Valid PS, VPS)이라고 www.acmicpc.net 스택을 활용한 방법입니다. 스택은 입력 출력 할 수 있는 구멍이 한 개인 구조입니다. 아파트 건물을 쌓는다 생각하면 됩니다. push는 쌓는 것 입니다. 처음 들어오면 1층이되고 그 다음에 들어오면 2층이 되고 그 다음에 들어오면 3층이 됩니다. pop는 빼는 것 입니다. 3층 까지 쌓아있을 때 pop를 해주면 3층이 빠지게 됩니다. 1,2 층만 남습니다. 이런 구조..
www.acmicpc.net/problem/1316 1316번: 그룹 단어 체커 그룹 단어란 단어에 존재하는 모든 문자에 대해서, 각 문자가 연속해서 나타나는 경우만을 말한다. 예를 들면, ccazzzzbb는 c, a, z, b가 모두 연속해서 나타나고, kin도 k, i, n이 연속해서 나타나기 때 www.acmicpc.net 설명 대로 그룹 단어의 개수를 출력하는 문제입니다. 그룹 단어란 예제처럼 happy new year a b c 같이 이미 나왔던 알파벳이 또 다시 나오는 경우는 그룹 단어에서 제외 됩니다. 무조건 제외 되지는 않습니다. 알파벳이 연속으로 나오는 경우는 그룹단어입니다. happy처럼 pp가 연속으로 나왔으니 그룹단어입니다. 만약 happyp 처럼 pp다음 y가오고 p가 다시온다면 ..
www.acmicpc.net/problem/2941 2941번: 크로아티아 알파벳 예전에는 운영체제에서 크로아티아 알파벳을 입력할 수가 없었다. 따라서, 다음과 같이 크로아티아 알파벳을 변경해서 입력했다. 크로아티아 알파벳 변경 č c= ć c- dž dz= đ d- lj lj nj nj š s= ž z= www.acmicpc.net 문제를 설명 드리자면 첫 번째 줄에 문자열이 주어집니다. 그 문자열은 =,-,소문자영어 로 이루어져있습니다. 그 문자열 중에서 크로아티아 문자가 있는 것 입니다. "c=","c-","dz=","d-","lj","nj","s=","z=" 이 문자열들이 크로아티아의 한문자씩이라고 보시면 됩니다. 그래서 문자열 중에서 이런 문자가 있으면 1문자로 인식을하고 나머지 문자를 포함해서..
www.acmicpc.net/problem/5622 5622번: 다이얼 첫째 줄에 알파벳 대문자로 이루어진 단어가 주어진다. 단어의 길이는 2보다 크거나 같고, 15보다 작거나 같다. www.acmicpc.net 이 문제는 다이얼이 핵심이다. 문자열이 입력되는데, 문자 하나하나를 비교하여 해당 다이얼에 번호가 눌린다. 숫자1을 걸려면 총 2초가 필요하다는건 숫자1을 누르고 다이얼이 초기화 된다. 초기화 되면서 1초가 걸리는 것이다. 그러니 1,2,3 이라면 1초 + 1초 + 2초 + 1초 + 3초 + 1초 가 되는 것이다. 이 문제를 해결하기 위해서는 다이얼에 쓰여진 문자가 어떤 번호를 가르키는지가 중요하다. 저는 이 문제를 Switch case를 사용하여 풀이하였습니다. import java.util...