728x90
반응형
2024.07.09기준 - 브론즈2
백준, BEAKJOON, BOJ, JAVA, 자바
풀이
이 문제는 문장열을 조건에 맞는 숫자로 변경해 그 숫자가 소수인지 판별하는 문제입니다.
1. 문자열을 char[]로 입력받습니다.
char[] arr = br.readLine().toCharArray(); // 단어
2. 입력 받은 문자열을 소문자와 대문자에 나뉘어 전체 합에 더해 줍니다.
for (int i = 0; i < arr.length; i++) {
if (Character.isLowerCase(arr[i])) { // 소문자일때
sum += arr[i] - 'a' + 1;
} else { // 대문자일때
sum += arr[i] - 'A' + 27;
}
}
3. 총 합이 소수인지 판별합니다.
boolean check = true;
for (int i = 2; i < sum; i++) { // 소수인지 판별하는 반복문
if (sum % i == 0) {
check = false;
break;
}
}
4. 소수라면 It is a prime word.을 소수가 아니라면 It is not a prime word.을 출력합니다.
if (check) { // 소수일 경우
sb.append("It is a prime word.");
} else { // 소수가 아닐 경우
sb.append("It is not a prime word.");
}
코드
package Main;
import java.io.*;
import java.util.*;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
StringBuilder sb = new StringBuilder();
char[] arr = br.readLine().toCharArray(); // 단어
int sum = 0; // 단어의 합
for (int i = 0; i < arr.length; i++) {
if (Character.isLowerCase(arr[i])) { // 소문자일때
sum += arr[i] - 'a' + 1;
} else { // 대문자일때
sum += arr[i] - 'A' + 27;
}
}
boolean check = true;
for (int i = 2; i < sum; i++) { // 소수인지 판별하는 반복문
if (sum % i == 0) {
check = false;
break;
}
}
if (check) { // 소수일 경우
sb.append("It is a prime word.");
} else { // 소수가 아닐 경우
sb.append("It is not a prime word.");
}
bw.write(sb.toString());
bw.flush();
bw.close();
br.close();
}
}
728x90
반응형
'코딩테스트 일기 (BAEKJOON)' 카테고리의 다른 글
BAEKJOON / 백준 - JAVA 31922번 이 대회는 이제 제 겁니다 (0) | 2024.07.10 |
---|---|
BEAKJOON / 백준 - JAVA 31429번 SUAPC 2023 Summer (0) | 2024.07.10 |
BEAKJOON / 백준 - JAVA 14500번 테트로미노 (0) | 2024.07.08 |
BAEKJOON / 백준 - JAVA 28453번 Previous Level (0) | 2024.07.08 |
BEAKJOON / 백준 - JAVA 1992번 쿼드트리 (0) | 2024.07.07 |