초코딩(chocoding)

[CodeUp / java] 1180 : 만능 휴지통 본문

[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