알고리즘/백준
BOJ) 귀여운 수~ε٩(๑> ₃ <)۶з
Zin0_0
2020. 6. 12. 23:34
반응형
귀여운 수
17294번: 귀여운 수~ε٩(๑> ₃ <)۶з
욱제는 귀여운 수~ε٩(๑> ₃ <)۶з를 좋아한다. 귀여운 수~ε٩(๑> ₃ <)۶з는 수를 이루는 각 자릿수가 등차수열[*]을 이루는 수이다. 당신은 욱제한테 귀여운 수~ε٩(๑> ₃ <)۶з 하나를 선물해주��
www.acmicpc.net
풀이
안푼문제 랜덤으로 맞이한 문제인데, 제목을 보고 살짝 당황했다... ㅋㅋㅋㅋㅋㅋㅋㅋ
오늘 머리가 복잡하고 문제도 잘 풀리지 않아서, 쉬운 문제를 마지막으로 자신감을 다시 찾고자 이 문제를 풀었다.
문제의 조건은 매우 간단했다.
연속된 자릿수가 등차수열을 이루는 문자열인지 여부를 확인해주는 문제다.
또한, 숫자의 범위가 1 ~ 10^18이라서 고민없이 String을 받아 charArr로 풀고자 했다.
10^18이면 배열 최대 크기가 18밖에 되지 않기 때문에, 속도나 메모리 측면에서 나쁘지는 않을 것 같았다.
문자열 길이가 1인 경우를 제외하고는 배열을 돌면서 등차수열인지 확인해주었고, 여부에 따라 문자열을 반환해 주었다.
코드
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class CuteNumber_17294 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String str = br.readLine();
br.close();
System.out.println(solution(str));
}
private static String solution(String str) {
final String GOODNUM = "◝(⑅•ᴗ•⑅)◜..°♡ 뀌요미!!";
final String BADNUM = "흥칫뿡!! <( ̄ ﹌  ̄)>";
if(str.length() ==1) {
return GOODNUM;
} else {
char[] chArr = str.toCharArray();
int diff = chArr[0] - chArr[1];
for(int i=1; i<chArr.length-1; i++) {
if(chArr[i]-chArr[i+1] != diff) {
return BADNUM;
}
}
return GOODNUM;
}
}
}
반응형