오늘의 실수 - 0519

한장민·2022년 5월 19일
0

오늘의실수

목록 보기
6/6
post-thumbnail

백준 1712번

처음 짜서 제출한 코드

import java.io.BufferedReader;

import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

public class Main {

	public static void main(String[] args) throws NumberFormatException, IOException {
		
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		
		StringTokenizer st = new StringTokenizer(br.readLine(), " ");
		int a = Integer.parseInt(st.nextToken());
		int b = Integer.parseInt(st.nextToken());
		int c = Integer.parseInt(st.nextToken());
		int d = 0;
		for(int i = 1; a+b*i >= c*i; i++) {
			d = i;
		}
		if(d == 1073741822) {
			System.out.println(-1);
		}else {
			System.out.println(d+1);
		}
		
	}

}

그야말로,,,,,, 예제들에 이렇게저렇게 끼워맞춘 결과라고 할 수 있다. 굉장히 부끄러운... 그런 결과이다... 내 입으로 설명하기도 쪽팔리지만 중간의 d == 107374... 어쩌고는 예제의 3 2 1 (손익분기점이 없는 경우) 을 넣으면 출력이 저렇게(정확히는 1을 더해서) 나왔는데 아마도 int형의 크기때문에 저렇게 출력되었다고 생각한다. 그래서 순간 뇌빼고 저 숫자가 나올 때 -1을 출력하게 만들었다^^


import java.io.BufferedReader;

import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

public class Main {

	public static void main(String[] args) throws NumberFormatException, IOException {
		
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		
		StringTokenizer st = new StringTokenizer(br.readLine(), " ");
		int a = Integer.parseInt(st.nextToken());
		int b = Integer.parseInt(st.nextToken());
		int c = Integer.parseInt(st.nextToken());
		if(c <= b) {
			System.out.println(-1);
		}else {
			System.out.println((a/(c-b))+1);
		}
		
	}

}

참고한 코드

보면서 굉장히 많은 후회를 했다. 사실 이정도 수학을 못하는 것도 아니고 단순히 생각의 갈래가 저리로 가지 못했다는게 어이없고 그렇다. 너무 문제를 곧이곧대로 쑤셔박으려고 한 것 같아서 내가 멍청해보이고 그렇다.. 좀 더 다양하게 사고할 수 있게끔 뇌를 굴려보겠다.

profile
HAAN YJGB

0개의 댓글