Algorithms/Softeer
[Java] Softeer 바이러스 (자료형 관리)
떼닝
2024. 10. 31. 22:52
[Java] Softeer 바이러스 (자료형 관리)
문제 링크 : https://softeer.ai/practice/6284
Softeer - 현대자동차그룹 SW인재확보플랫폼
softeer.ai
기록의 이유...
파이썬 쓰다가 자바로 넘어오니 이런 게 까다롭다
자료형을 신경쓰지 않으면 한순간에 틀린 정답이 되어버린다...
보통 제일 많이 사용하는 자료형이 정수(int)형인데 정수형의 범위는 -2,147,483,647 부터 2,147,483,647까지.
때문에 범위가 넘어갈 것 같으면 다른 자료형으로 변경해야한다.
출처 : https://www.w3schools.com/java/java_data_types.asp
제출 코드 (오답, int type 사용)
import java.io.*;
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int K = sc.nextInt();
int P = sc.nextInt();
int N = sc.nextInt();
int result = K;
for(int i=0;i<N;i++){
result *= P;
result %= 1000000007;
}
System.out.println(result%1000000007);
}
}
일부러 값 좀 작게 한답시고 매번 곱하고 바로 모듈로 연산으로 처리해보려고 했으나...
그래도 값의 범위가 넘어가게 되면 제해지는 값들이 있게 되기 마련이다
으흐흑 ㅠ
제출 코드 (정답, long type 사용)
import java.io.*;
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int K = sc.nextInt();
int P = sc.nextInt();
int N = sc.nextInt();
long result = K;
for(int i=0;i<N;i++){
result *= P;
result %= 1000000007;
}
System.out.println(result%1000000007);
}
}
사실 자료형 생각 못하고... 아 왜안돼 ㅠ 싶어서 다른 블로그 검색도 해봤다 ㅋㅎ
그랬더니 자료형 잘못이라고...
전에 다른 오빠가 코테 볼 때 로직은 다 짰는데 자료형을 long long 처리를 안 해서 틀렸을 것 같다고 얘기했었던 게 생각났다
자바는 이런 사소한 것들도 신경을 써야 하는구나... 이렇게 다시금 또 깨닫게 되는...
앞으로 신경 써서 풀자!
아이 러브 파이썬