
상근이의 동생 상수는 수학을 정말 못한다. 상수는 숫자를 읽는데 문제가 있다. 이렇게 수학을 못하는 상수를 위해서 상근이는 수의 크기를 비교하는 문제를 내주었다. 상근이는 세 자리 수 두 개를 칠판에 써주었다. 그 다음에 크기가 큰 수를 말해보라고 했다.
상수는 수를 다른 사람과 다르게 거꾸로 읽는다. 예를 들어, 734와 893을 칠판에 적었다면, 상수는 이 수를 437과 398로 읽는다. 따라서, 상수는 두 수중 큰 수인 437을 큰 수라고 말할 것이다.
두 수가 주어졌을 때, 상수의 대답을 출력하는 프로그램을 작성하시오.
- 우선 변수 A, B로 두 상수의 값을 받는다.
- 그 후 그 값을 { StringBuffer의 reverse() }기능을 사용해 역순으로 바꾸어 준다.
- 삼항연산자를 이용해서 { reversedA >= reverseB ? reverseA: reverseB; } 조건이 참일 때 reverseA를 출력해주고 거짓이라면 reverseB를 출력해주는 변수를 만든다.
- 출력한다.


전화를 걸고 싶은 번호가 있다면, 숫자를 하나를 누른 다음에 금속 핀이 있는 곳 까지 시계방향으로 돌려야 한다. 숫자를 하나 누르면 다이얼이 처음 위치로 돌아가고, 다음 숫자를 누르려면 다이얼을 처음 위치에서 다시 돌려야 한다.
숫자 1을 걸려면 총 2초가 필요하다. 1보다 큰 수를 거는데 걸리는 시간은 이보다 더 걸리며, 한 칸 옆에 있는 숫자를 걸기 위해선 1초씩 더 걸린다.
상근이의 할머니는 전화 번호를 각 숫자에 해당하는 문자로 외운다. 즉, 어떤 단어를 걸 때, 각 알파벳에 해당하는 숫자를 걸면 된다. 예를 들어, UNUCIC는 868242와 같다.
할머니가 외운 단어가 주어졌을 때, 이 전화를 걸기 위해서 필요한 최소 시간을 구하는 프로그램을 작성하시오.
- 문자열을 변수 S에 입력받아 저장한다. 그리고 몇 초가 걸리는 지 파악하기 위해 변수 sec를 만들어준다.
- 그리고 문자열을 보고 그 문자에 맞는 초를 더해주기 위해 조건문을 만들어 줄 것이다. 먼저 { for문과 charAt() }메서드를 이용해서 S의 문자열을 하나씩 뜯어준다.
- { switch/case }조건문을 이용해서 알파벳마다 case를 나눠준다. 그 후 같은 시간이 걸리는 알파벳의 case를 수평나열 해준 뒤 해당되는 문자가 나타나면 sec에 값을 더하고 break를 걸어준다.
- sec를 출력한다.

입력 받은 대로 출력하는 프로그램을 작성하시오.
정말 간단하지만 EOF의 개념을 모른다면 풀기 어렵다고 생각한다.
EOF에 대해 공부해놓은 블로그가 따로 존재하기에 다시 설명은 하지 않는다.
- EOF를 사용하기 위해 먼저 String변수 하나를 ""값으로 만든다.
- EOF가 나오기 전에는 계속 입력을 받을 것이기에 { while ((str = br.readLine()) != null && !str.isEmpty()) } 즉 입력값이 null이거나 엔터값이 나온다면 이 반복문을 종료할 것 이다. 라는 의미이다.
- 입력받은 값을 출력해준다.