본문 바로가기
test

lv 0 java division of two numbers

by karonano 2023. 2. 20.
728x90

이 값의 공식은 num1/num2 +1000 이다.

 

다만 한가지 섞여 있는게 있는데 실수로 나눈 이후 *1000 = 출력

 

출력시에 정수만 나와야한다. 

 

1번째시도

 

나는 처음에 답을 num1/num2*1000; 끝했다가 다시 읽었었다 ㅠㅠ..

 

2번째시도

 

실수로 해야하는구나 하고 double로 해보기로 하였고

 

메소드랑 변수값 double로 함

 

근데 틀림 

 

왜 ? 실수까지 그대로 출력되었으니까.

 

3번째시도 

 

아 그럼 배운 형변환을 써야하는구나 하고 책찾아보면서 했으나

 

doubleresult = intresult;로 하고

 

return doubleresult 했으나 틀렸다. 

 

왜 ? 부분적용이 되지않고 전체로 실수까지 그대로 출력되었으니까.

 

4번째시도

[Java] 형변환 Casting(문자형,정수형,실수형) (tistory.com)

 

[Java] 형변환 Casting(문자형,정수형,실수형)

문자열에있는 숫자를 계산하고 싶은경우, 스트링변수에 Int값을 넣고싶은경우등등 코딩을 하다보면 어떤 변수형을 다른 형으로 강제 치환해야 할 경우가 많습니다. 이번글에서는 자바의 형변환

coding-factory.tistory.com

를 읽어보고 이거저거 쳐봤지만 fail

 

부분적으로 어떻게 나눠서 출력해야할지 감이 안 잡혔다.

 

솔직히 출력부분에서 정수만 나오게 어떻게 작성해야할지 감이 안잡혀  검색했다..

 

[프로그래머스] 몫 구하기, 두 수의 나눗셈 - java — 코린이의 코딩성장일기 (tistory.com)

  int answer = (int) ((double)num1/num2*1000);
        return answer;

이런식으로 나오더라 .

int를 넣어주고 부분을 강제타입변환 (작은범위타입) = (작은범위타입) 큰 범위타입

실수(double,float) > 정수(byte,short,int,long)니까

 

이 방식말고도 다른 사람풀이를 한번 쭉 봣다.

 

  public int solution(int num1, int num2) {
        double result = (double) num1 / (double) num2;
        return (int) (result * 1000);

제일 많이 푼 방식 

 

강제 변환방식으로 먼저  num1/num2만 구해놓고 

변환해서 *1000

 

class Solution {
    public int solution(int num1, int num2) {
        int answer = 0;
        double value = (double)num1 / num2 * 1000;
        answer = (int)value;
        return answer;
    }
}

다른방식 2번

 

int를 0으로 초기화 선언하고 

 

double value로 선언후 double 강제변환 + 공식

 

answer 는 강제변환 value

 

생각하는게 다양해서 보고 배울점이 있는 거 같다.

 

내가 생각한 공식이 다른사람의 공식이 다르다.

'test' 카테고리의 다른 글

lv.0 array reverse  (0) 2023.02.26
lv.0 arr.avg  (0) 2023.02.21
lv 0 division answer, remind  (0) 2023.02.16