๐๋ฌธ์ ์ถ์ฒ : https://www.acmicpc.net/problem/5622
๐code ์ ์ฅ์
hayannn/CodingTest_Java_NKLCBHub/#5622 ๋ค์ด์ผ1,3
hayannn/CodingTest_Java_NKLCBHub/#5622 ๋ค์ด์ผ2
์ซ์๋ฅผ ํ๋ ๋๋ฅด๋ฉด ๋ค์ด์ผ์ด ์ฒ์ ์์น๋ก ๋์๊ฐ ๋๊น์ง ๊ธฐ๋ค๋ ธ๋ค๊ฐ ๋ค์ ์ซ์๋ฅผ ๋๋ฅด๋ ๋ค์ด์ผ ๋ฐฉ์์ ๋๋ค.
๊ท์น
๋จ์ด๋ฅผ ์ ๋ ฅํ๋ฉด, ์ด ์ ํ๋ฅผ ๊ฑธ๊ธฐ ์ํด ํ์ํ ์ต์ ์๊ฐ์ ๊ตฌํ๋ ๋ฌธ์ ์ ๋๋ค.
์ซ์ | ๋ฌธ์ | ์์์๊ฐ |
---|---|---|
1 | ||
2 | ABC | 3s |
3 | DEF | 4s |
4 | GHI | 5s |
5 | JKL | 6s |
6 | MNO | 7s |
7 | PQRS | 8s |
8 | TUV | 9s |
9 | WXYZ | 10s |
0 | 11s |
๋ฌธ์ ๋ฅผ ๊ต์ฅํ ๋ณต์กํ๊ฒ ์ค๊ณํ์ง๋ง, ๊ฒฐ๊ตญ ์ ๋ ฅ๋ฐ๋ ๋ฌธ์์ ๋ฐ๋ฅธ ์๋ฅผ ๋ชจ๋ ๋ํด์ฃผ๋ฉด ๋๋ ๊ฐ๋จํ ๋ฌธ์ ์ ๋๋ค.
์์
๐จ ์ฃผ์์ฌํญ
- ๋จ์ด๋ ์ํ๋ฒณ ๋๋ฌธ์๋ก๋ง ์ด๋ฃจ์ด์ง๋๋ค.
- ๋จ์ด์ ๊ธธ์ด๋
2<=x<=15
๐ ํ์ด ๊ณผ์ ๋ฐ ์ฝ๋
package baekjoon.level.L5;
import java.util.*;
public class BJ5622 {
public static void main(String[] args){
Scanner scanner = new Scanner(System.in);
// 1. ๋จ์ด ์
๋ ฅ๋ฐ๊ธฐ
String words = scanner.nextLine();
// 1-1. ์์ธ : ๋จ์ด ๊ธธ์ด 2 <= x <= 15 || ์ํ๋ฒณ ๋๋ฌธ์๋ง
if(words.length() < 2 || words.length() > 15 || !isAllUpperCase(words)){
System.out.print("๋จ์ด๋ 2 ์ด์ 15์ดํ๋ก ์
๋ ฅํด์ผ ํ๋ฉฐ, ์ํ๋ฒณ ๋๋ฌธ์๋ง ์
๋ ฅํด์ฃผ์ธ์.");
} else {
int count = 0;
int length = words.length();
// ์
๋ ฅ๋ฐ์ ๋ฌธ์๋ฅผ ์์์๊ฐ์ ๋์นํ๊ธฐ
for (int i = 0; i < length; i++) {
switch (words.charAt(i)) { //charAt(string ๋ฌธ์์ด ์ค ํ๊ธ์๋ฅผ char ํ์
์ผ๋ก ๋ณํ)
case 'A':
case 'B':
case 'C':
count += 3;
break;
case 'D':
case 'E':
case 'F':
count += 4;
break;
case 'G':
case 'H':
case 'I':
count += 5;
break;
case 'J':
case 'K':
case 'L':
count += 6;
break;
case 'M':
case 'N':
case 'O':
count += 7;
break;
case 'P':
case 'Q':
case 'R':
case 'S':
count += 8;
break;
case 'T':
case 'U':
case 'V':
count += 9;
break;
case 'W':
case 'X':
case 'Y':
case 'Z':
count += 10;
break;
}
}
//์ฐจ๋ก๋ก ๋ฌธ์์ ๋ง๋ ์ซ์๋ฅผ ๋ํ๊ธฐ ๋๋ฌธ์ count๋ผ๊ณ ํ๋ฉด ์ด ํฉ์ด ๋์ค๊ฒ ๋จ.
System.out.println(count);
}
}
//1-1. ์์ธ ) ์ํ๋ฒณ ๋๋ฌธ์์ธ์ง ํ์ธํ๋ ๋ฉ์๋ ๋ถ๋ฆฌ
private static boolean isAllUpperCase(String string){
for(char c : string.toCharArray()){
if(!Character.isUpperCase(c)){
return false;
}
}
return true;
}
}
switch(words.charAt(i)
count += 3;
๐ ํ์ด ๊ณผ์ ๋ฐ ์ฝ๋
package baekjoon.level.L5;
import java.util.*;
public class BJ5622v2 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String words = scanner.nextLine().toUpperCase();
// ์
๋ ฅ๋ ๋ฌธ์์ด์ ๊ธธ์ด๊ฐ 2๊ธ์ ์ด์ 15๊ธ์ ์ดํ์ธ์ง ํ์ธ
if (words.length() < 2 || words.length() > 15) {
System.out.println("2๊ธ์ ์ด์ 15๊ธ์ ์ดํ์ ๋ฌธ์์ด์ ์
๋ ฅํด์ผ ํฉ๋๋ค.");
return;
}
int count = 0;
for (int i = 0; i < words.length(); i++) {
char character = words.charAt(i);
int wtonumber = character - 'A'; //๊ธฐ์ค
if (wtonumber < 3) count += 3;
else if (wtonumber < 6) count += 4;
else if (wtonumber < 9) count += 5;
else if (wtonumber < 12) count += 6;
else if (wtonumber < 15) count += 7;
else if (wtonumber < 19) count += 8;
else if (wtonumber < 21) count += 9;
else if (wtonumber <= 26) count += 10;
}
System.out.println(count);
}
}
int wtonumber = character - 'A';
๐ ํ์ด ๊ณผ์ ๋ฐ ์ฝ๋
package baekjoon.level.L5;
import java.util.Scanner;
public class BJ5622v3 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String words = scanner.nextLine().toUpperCase();
// ์
๋ ฅ๋ ๋ฌธ์์ด์ ๊ธธ์ด๊ฐ 2๊ธ์ ์ด์ 15๊ธ์ ์ดํ์ธ์ง ํ์ธ
if (words.length() < 2 || words.length() > 15) {
System.out.println("2๊ธ์ ์ด์ 15๊ธ์ ์ดํ์ ๋ฌธ์์ด์ ์
๋ ฅํด์ผ ํฉ๋๋ค.");
return;
}
int count = 0;
for (int i = 0; i < words.length(); i++) {
char character = words.charAt(i);
int wtonumber = character - 'A';
count += (wtonumber / 3) + 3;
if (character == 'S' || character == 'V' || character == 'Y' || character == 'Z') {
count -= 1;
}
}
System.out.print(count);
}
}
count += (wtonumber / 3) + 3;
switch-case๋ฌธ
A์ ๋จ์ด์ง ๊ฑฐ๋ฆฌ๋ฅผ ํ์ฉํด ์ซ์๋ก ๋ณํ
A์ ๋จ์ด์ง ๊ฑฐ๋ฆฌ๋ฅผ ํ์ฉํด ์ซ์๋ก ๋ณํ(๊ฐ๋จ ๋ฒ์ )![]
โก๏ธ ์ฑ๋ฅ ๋น๊ต : 1๋ฒ๊ณผ 3๋ฒ์ ๊ฒฝ์ฐ, ์ฝ๋๋ ๊ฐ๋จํด์ก์ง๋ง ์ค์ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋๊ณผ ์๊ฐ ์์๋ ๋น์ทํฉ๋๋ค!