Algorithm/BOJ(Baekjoon Online Judge)
[백준 - 1871번] 좋은 자동차 번호판 - Java //Wello Horld//
koucop
2019. 8. 14. 15:13
이번에는 BOJ의 1871번 문제 "좋은 자동차 번호판" 을 풀어보도록 하자
번호판이 "문자열 - 숫자" 로 되어 있고, 뺄셈하는 것 같이 문자열을 A를 기준으로 해서 26진법으로 만든 다음에
>> |문자열 - 숫자|
를 해서 해당 번호판의 가치를 뽑아내면 되는 문제이다.
해당 번호판의 가치가 100이하이면 "nice"를, 그렇지 않으면 "not nice"를 출력하면 된다.
성공한 코드는 아래와 같다.
import java.io.*;
import java.util.*;
public class Main {
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
int N = Integer.parseInt(br.readLine());
for(int i = 0; i < N; i++){
String input = br.readLine();
String a = input.split("-")[0];
String b = input.split("-")[1];
int valueA = 0;
for(int j = 0; j < a.length(); j++){
int value = a.charAt(j) - 'A';
value *= Math.pow(26, 2 - j);
valueA += value;
}
int valueB = Integer.parseInt(b);
if(Math.abs(valueA - valueB) <= 100) bw.write("nice\n");
else bw.write("not nice\n");
}
bw.flush();
br.close();
bw.close();
}
}
문제 : https://www.acmicpc.net/problem/1871
1871번: 좋은 자동차 번호판
문제 앨버타의 자동차 번호판은 ABC-0123 (세 글자, 네 숫자)와 같이 두 부분으로 나누어져 있다. 좋은 번호판은 첫 번째 부분의 가치와 두 번째 부분의 가치의 차이가 100을 넘지 않는 번호판이다. 글자로 이루어진 첫 번째 부분의 가치는 글자를 26진법 수처럼 계산한다. (각 자리가 [A..Z]) 예를 들어, "ABC"의 가치는 28 (0*26^2 + 1*26^1 + 2*26^0)이 된다. "ABC-0123"은 |28 - 123| <= 100 이
www.acmicpc.net