- 문제점
https://school.programmers.co.kr/learn/courses/30/lessons/12934 알고리즘 문제 를 푸는 과정에서
.split에 관한 에러가 발생했다.
class Solution {
public long solution(long n) {
long answer = 0;
//n = 121 -> a = 11.0
double a = Math.sqrt(n);
// a-> String b = "11.0"
String b = Double.toString(a);
//c = {"11", "0"}
String[] c = b.split(".");
//c[1] = "0" 이 나와야 하는데
if(c[1].equals("0")){
answer = (long)Math.pow(a+1 ,2);
}else{
answer = -1;
}
return answer;
}
}
그래서 for문으로 c의 index값을 확인해 보기로 했다.
class Solution {
public long solution(long n) {
long answer = 0;
double a = Math.sqrt(n); //n = 121 -> a = 11.0
String b = Double.toString(a);
String[] c = b.split(".");
//for문으로 c의 인덱스값 확인해 보기
for(String i:c){
System.out.println(i);
}
return answer;
}
}
이럴수가... 0이 나왔다... 차라리 null값이 나왔으면 어디서 잘못되었는지 알수라도 있었을텐데..... 방법을 바꿔서 c에 값이 재대로 받아와지는지 확인해 보기로 하고, .split("")로 수정해봤다.
String[] c = b.split("");
for(String i:c){
System.out.println(i);
}
재대로... 잘 들어오는데 뭐가 문제인지 모르겠다...
- 해결
class Solution {
public long solution(long n) {
long answer = 0;
double a = Math.sqrt(n);
String b = Double.toString(a);
String[] c = b.split("\\.");
for(String i:c){
System.out.println(i);
}
if(c[1].equals("0")){
answer = (long)Math.pow(a+1 ,2);
}else{
answer = -1;
}
return answer;
}
}
알고보니 .은 \\.으로 표현해 줘야 한다는것을 알았다.... 진짜 사람 애먹게만드는구만...
절대 안까먹을것 같다.
'트러블 슈팅' 카테고리의 다른 글
Selenium 엘리먼트 선택 과정에서 선택이 되지 않을때 (0) | 2023.06.05 |
---|---|
다른 클래스타입의 리스트 복사하기 JAVA (0) | 2022.12.29 |
flask로 만든 회원가입, 로그인페이지를 서버에 올리는 과정에서 발생한 오류 (0) | 2022.12.14 |
flask 서버에 이미지 올리기 고민 (0) | 2022.12.12 |
python None과 관련된 issue (1) | 2022.12.10 |