22-10-19 자율학습 메모
오늘 아침 학원에 오고서 안타까운 소식을 전해들었다.
내가 좋아해마지않던 센세께서 어제 퇴근하시고 운동하시다가 그만 손목을 크게 다치셔서 수술이 필요하신 상황이라고 다른 선생님께 얘기를 들었다.
따라서 오늘 하루종일 자습. 그리고 메모.
#제곱근 구하는 메서드
-Math.sqrt() 메소드를 사용하면 쉽게 제곱근을 구할 수 있다. 주의할 점은, 반환타입이 double 이라는 점.
-Math.sqrt(double a) 반환타입: double
이 메서드를 사용하면 제곱근 값을 구해줌. 매개변수로는 실수형의 최고 사이즈인 double이 들어갈 수 있기 때문에
사실상 아무 숫자나 다 넣어도 됨. 반환값은 doulbe로 해주기에 타입변환에 주의해서 사용하기.
프로그래머스 문제 : https://school.programmers.co.kr/learn/courses/30/lessons/120909
풀이:
class Solution {
public static int solution(int n) {
int answer = 0;
double doubleSqrt =Math.sqrt(n);
int intSqrt = (int)doubleSqrt;
if( doubleSqrt == intSqrt ) {
answer = 1;
} else {
answer = 2;
}
return answer;
}
}
# Arrays.sort 사용시 주의사항.
import java.util.Arrays; <- 꼭 선언해 주어야함.
이유는?
-Arrays.toString(arr); 은 정렬된 배열을 문자열 형태로 만들어서 리턴해주는것.
#if문 사용시 if문 {} 안에 내용이 단 한줄이라도 무조건 중괄호를 만들어서 그 안에 내용을 작성해주는게 좋음.
-이유1: 프로젝트 협업시 {}이 없으면 가독성이 떨어지기 때문에 꼭 {} 안에 내용을 넣어주기.
-이유2:
https://school.programmers.co.kr/learn/courses/30/lessons/120839
위 문제 풀면서 발생한 상황.
*정답:
class Solution {
public static String solution(String rsp) {
String answer = "";
char[] change = rsp.toCharArray();
for(int i = 0; i <change.length; i++) {
if(change[i]=='2') {
change[i] = '0';
} else if(change[i]=='0'){
change[i] = '5';
} else if(change[i]=='5') {
change[i] = '2';
}
}
answer = String.valueOf(change);
return answer;
}
}
*오답:
char[] change = rsp.toCharArray();
for(int i = 0; i <change.length; i++) {
if(change[i]=='2') change[i] = '0';
if(change[i]=='0') change[i] = '5';
if(change[i]=='5') change[i] = '2';
}
문자열 값을 바꿔 주는 작업 중에 if 문을 이렇게 처리하면 조건대로 변경이 안되는 문제 발견.
따라서 위에 정답과 같이 if문을 변경했더니 문제 해결됨.
이유가 무엇인가 ? 문제에서 입출력 예 "205" 를 rsp에 대입해보자.
결과값은 "052" 가 나와야하지만 위 오답과 같이 if문을 처리하면 "222"가 나옴.
★ 꼭 if문 사용시에 {}를 사용하도록 하자. ★