
이 값의 공식은 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 |