[Java] 알고리즘 문제풀이
[CodeUp / java] 1180 : 만능 휴지통
sweetychocoding
2023. 9. 24. 22:24
728x90
package ex_codeUp;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class CodeUp_1180 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int result = 0;
String trashCan = br.readLine();
if (Integer.parseInt(trashCan) < 10) {
trashCan = "0" + trashCan;
}
char[] trashCanArr = trashCan.toCharArray();
char temp = trashCanArr[0];
trashCanArr[0] = trashCanArr[1];
trashCanArr[1] = temp;
result = (Character.getNumericValue(trashCanArr[0]) * 10 + Character.getNumericValue(trashCanArr[1])) * 2;
if (result > 100) {
result = result % 100;
}
System.out.println(result);
if (result <= 50) {
System.out.println("GOOD");
} else if (result > 50) {
System.out.println("OH MY GOD");
}
}
}
생각할 조건이 많았던 문제였던 것 같다.
1. 일의 자리가 입력됐을 때 숫자 스위치를 위해 앞에 0을 붙여줘야 하는 것
2. 숫자 스위치
3. 숫자 압축
4. 숫자 압축 후 100이 넘으면 100의 자리 버리기
5. 50 이하일 때와 초과일 때 문자 출력
코드를 최적화하면서 짜다보니 머리가 아파서
일단 위에 5가지를 생각하면서 조건을 적어나갔다.
코드를 보니 어떻게 최적화시켜야 할 지 막막하긴 한데....
더 생각해봐야겠다.
+ 최적화 후)
package ex_codeUp;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class CodeUp_1180 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String trashCan = br.readLine();
if (trashCan.length() < 2) {
trashCan = "0" + trashCan;
}
char[] trashCanArr = trashCan.toCharArray();
int result = (Character.getNumericValue(trashCanArr[1]) * 10 + Character.getNumericValue(trashCanArr[0])) * 2;
if (result > 100) {
result %= 100;
}
System.out.println(result);
if (result <= 50) {
System.out.println("GOOD");
} else {
System.out.println("OH MY GOD");
}
}
}
+ 같이 스터디하는 팀원이 진짜... 놀라운 코드를 만들어서 가져왔다.
package study;
import java.util.Scanner;
class Java1 {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int n = scan.nextInt();
int bin = ((n % 10 * 10 + n / 10) * 2) % 100;
// n % 10 * 10 : 일의 자리 수를 십의 자리로 만들기
// n / 10 : 십의 자리 수를 일의 자리로 만들기
// ( .... ) % 100 : 백의 자리가 넘을 경우 백의 자리 없애기
System.out.println(bin);
if (bin > 50)
System.out.println("OH MY GOD");
else
System.out.println("GOOD");
scan.close();
}
}
진짜..... 천재 아니야.......?
,................
진짜 ... respect...bb
728x90