250x250
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 코딩
- 데이터베이스
- 미라클모닝
- SpringBoot
- 백엔드
- 프로그래머스
- 자바개발자
- 자바의정석
- 프로그래밍
- Java
- 개발자
- 스프링부트
- 알고리즘
- 자바
- 혼공컴운
- Codeup
- 프로그래머
- 프로세스
- 코드업
- db
- 개발자일기
- 운영체제
- 자바스크립트
- React
- 자바알고리즘
- 소셜로그인구현
- 국비지원코딩
- 국비지원
- 리액트
- 백엔드개발자
Archives
- Today
- Total
초코딩(chocoding)
[CodeUp / java] 1180 : 만능 휴지통 본문
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
'[Java] 알고리즘 문제풀이' 카테고리의 다른 글
[Programmers / java] 폰켓몬 (0) | 2024.04.17 |
---|---|
[Programmers / java] 추억 점수 (0) | 2023.10.03 |
[CodeUp / java] 1371 : 마름모 출력하기 (0) | 2023.09.21 |
[CodeUp / java] [기초-배열연습] 2차원 배열 달팽이 채우기 4-1 (0) | 2023.09.10 |
[CodeUp / java] 1409 : 기억력 테스트 1 (0) | 2023.09.06 |