문제 : https://school.programmers.co.kr/learn/courses/30/lessons/147355
⭐️자료형(기본형 vs 참조형) 형변환⭐️
기본형
byte a = 10; short b = 200; int c = 1000; // 10자리 -2,147,483,648 ~ 2,147,483,647 long d = 100000L; //19 자리 -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807 float e = 3.14F; double f = 3.141592653589793; char g = 'A'; boolean h = true;
참조형
String s = "Hello, World!"; String t = s + " Java"; int[] numbers = {1, 2, 3, 4, 5};
class Person { String name; int age; } Person person = new Person(); person.name = "Alice";
interface Animal { void makeSound(); }
자료형 | 메모리 크기 | 기본값 | 특징 |
---|---|---|---|
byte | 1바이트 | 0 | 작은 범위의 정수 처리 |
short | 2바이트 | 0 | 중간 범위 정수, 메모리 절약 |
int | 4바이트 | 0 | 일반적인 정수, 기본 정수형 |
long | 8바이트 | 0L | 큰 범위의 정수 |
float | 4바이트 | 0.0f | 소수점 이하 7자리, 부동 소수점 |
double | 8바이트 | 0.0d | 소수점 이하 15자리, 높은 정밀도 |
char | 2바이트 | '\u0000' | 유니코드 문자 |
boolean | 1비트 | false | 논리값 (true/false) |
자료형별 표현할 수 있는 범위를 정확하게 알고 있지 않아서 범위에 따른 테스트케이스에 대한 오류가 발생했었다
1 ≤ p의 길이 ≤ 18
p의 길이 ≤ t의 길이 ≤ 10,000
p는 최대 18자리 수 -> long
public static int solution (String t, String p){
int answer = 0;
int tSize = t.length();
int pSize = p.length();
long pLong = Long.parseLong(p);
for(int i=0; i<=(tSize-pSize);i++){
String str = "";
for(int j=i;j<(i+pSize);j++){
str+=String.valueOf(t.charAt(j));
}
if(Long.parseLong(str)<=pLong){
answer++;
}
}
return answer;
}```
범위관련해서 오류가 자주 발생했었는데 이제 확실히 기억하게 될것 같다!