백준 알고리즘/문자열 10

[JAVA 자바] 백준 1316번 : 그룹 단어 체커

▶ 문제 https://www.acmicpc.net/problem/1316 1316번: 그룹 단어 체커 그룹 단어란 단어에 존재하는 모든 문자에 대해서, 각 문자가 연속해서 나타나는 경우만을 말한다. 예를 들면, ccazzzzbb는 c, a, z, b가 모두 연속해서 나타나고, kin도 k, i, n이 연속해서 나타나기 때 www.acmicpc.net ▶ 설명 동일한 알파벳이 연속으로 나올 경우는 pass(무시) 하고 다른 글자와 섞여서 재등장 한다면 그때 걸러내서 출력에서 카운트로 제외시키는 방식으로 문제에 접근해 보았다. 알파벳을 어떻게 읽어올지, 연속된 상황은 어떻게 체크할 것인지, 다시 동일한 알파벳이 다른 글자 뒤에 재등장 한다면 어떻게 또 체크해서 걸러낼 것인지를 고민해 보았다. 알파벳을 읽어..

[JAVA 자바] 백준 2941번 : 크로아티아 알파벳

▶ 문제 https://www.acmicpc.net/problem/2941 2941번: 크로아티아 알파벳 예전에는 운영체제에서 크로아티아 알파벳을 입력할 수가 없었다. 따라서, 다음과 같이 크로아티아 알파벳을 변경해서 입력했다. 크로아티아 알파벳 변경 č c= ć c- dž dz= đ d- lj lj nj nj š s= ž z= www.acmicpc.net ▶ 설명 크로아티아 알파벳을 문자 배열에 담고 입력 값이 주어지면 크로아티아 문자배열 인덱스 순서에 따라 요소 전체를 대입해주면서 입력 문자에서 포함된 문자가 있을 시 통일된 한 글자로 치환해주는 식으로 하여 반복문을 실행해 문제를 해결해 보았다. 반복문에서 입력 문자에 크로아티아 알파벳이 포함되었는지 아닌지를 어떻게 판단할지 그리고 포함된 문자가 존..

[JAVA 자바] 배준 5622 : 다이얼

▶ 문제 https://www.acmicpc.net/problem/5622 5622번: 다이얼 첫째 줄에 알파벳 대문자로 이루어진 단어가 주어진다. 단어의 길이는 2보다 크거나 같고, 15보다 작거나 같다. www.acmicpc.net ▶ 설명 입력된 단어를 한 글자씩 읽어와서 이미 설정해 놓은 초 시간만큼씩 더하면 되는 문제이다. 알파벳 26개마다 3~10초 사이의 범위를 갖기 때문에 조건을 많이 걸 수밖에 없어서 나는 swich 문을 사용하였다. ▶ 문제 풀이 🌱 풀이1. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; // 다이얼 public class Main { public st..

[JAVA 자바] 백준 2908번 : 상수

▶ 문제 https://www.acmicpc.net/problem/2908 2908번: 상수 상근이의 동생 상수는 수학을 정말 못한다. 상수는 숫자를 읽는데 문제가 있다. 이렇게 수학을 못하는 상수를 위해서 상근이는 수의 크기를 비교하는 문제를 내주었다. 상근이는 세 자리 수 두 www.acmicpc.net ▶ 설명 두 수를 거꾸로 읽어서 비교하는 문제이다. 나는 한 번에 두 수를 문자열로 읽고서 자리배치를 거꾸로 바꾼 후 공백으로 두 문자를 나누는 방식으로 시작했다. 그 뒤 숫자로 변환하여서 최대값을 구하는 max() 메소드를 사용했다. 문자열을 거꾸로 하기 위해서는 두 가지 방법을 썼다. 1. StringBuilder의 reverse() 메소드 사용. 2. 문자열을 역순으로 byte 배열에 값을 준 ..

[JAVA 자바] 백준 1152번 : 단어의 개수

▶ 문제 https://www.acmicpc.net/problem/1152 1152번: 단어의 개수 첫 줄에 영어 대소문자와 공백으로 이루어진 문자열이 주어진다. 이 문자열의 길이는 1,000,000을 넘지 않는다. 단어는 공백 한 개로 구분되며, 공백이 연속해서 나오는 경우는 없다. 또한 문자열 www.acmicpc.net ▶ 설명 문장이나 한 단어가 주어지면, 단어의 개수를 출력하는 문제이다. 단어의 개수는 공백과 연관이 있다. 하지만 공백의 개수를 세면 단어의 개수보다 항상 1이 작다는 것을 알 수 있다. 우선, 입력된 문장의 앞뒤에도 공백이 있을 수 있으니 애초에 입력 받을 때 공백을 제거해서 받아야 한다. (trim() 메소드를 이용해서 앞뒤의 공백을 제거할 수 있다.) ▶ 문제 풀이 🌱 풀이1..

[JAVA 자바] 백준 1157번 : 단어 공부

▶ 문제 https://www.acmicpc.net/problem/1157 1157번: 단어 공부 알파벳 대소문자로 된 단어가 주어지면, 이 단어에서 가장 많이 사용된 알파벳이 무엇인지 알아내는 프로그램을 작성하시오. 단, 대문자와 소문자를 구분하지 않는다. www.acmicpc.net ▶ 설명 입력으로 대소문자가 모두 들어오지만 출력은 대문자로 해야하기 때문에 대문자로 입력문자를 모두 변환해 주는 과정이 먼저 필요하다. 입력된 단어에서 가장 많이 쓰인 알파벳을 찾으려면 몇 개가 쓰였는지를 체크해주어야 한다. 그러기 위해서는 알파벳 카운트를 할 수 있는 배열을 만들어 주도록 한다. 알파벳 길이는 26이므로 26크기의 정수형 배열을 선언/초기화 한다. Mississipi 이라는 단어가 입력되었다면 알파벳 ..

728x90