Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- jpa
- 기술면접
- 자바스크립트
- 스프링부트
- 테스트코드
- 오늘도
- 스프링부트와 AWS로 혼자 구현하는 웹 서비스
- CS
- 스프링부트 테스트코드
- 스프링부트와 AWS로 혼자 구현하는 웹서비스
- Flexbox
- 개발자기술면접
- 어찌저찌해냄
- 트랜지스터
- 내가해냄
- 스프링 부트와 AWS로 혼자 구현하는 웹 서비스
- AWS EC2 구현
- 스프링 부트와 AWS로 혼자 구현하는 웹 서비스 2장
- 그래도일단
- 운영체제
Archives
- Today
- Total
개발 공부
프로그래머스 정수 제곱근 판별 Java 본문
https://school.programmers.co.kr/learn/courses/30/lessons/12934#
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
class Solution {
public long solution(long n) {
long answer = -1;
double x = Math.sqrt(n);
if(x == (int)x){
answer = (long)(Math.pow(x + 1, 2));
}
return answer;
}
}
➡️Math 함수 활용
Math.sqrt(n)
: n의 제곱근을 구하는 메서드. 결괏값이 double로 나오기 때문에 자료형을 double로 해서 변수를 생성해야 함
Math.pow(밑값, 지수 값)
: 밑값을 지수값만큼 곱한 값을 내어준다. double로 나오기 때문에 이 문제에서는 long으로 형변환을 해줘야 함
➡️n의 제곱근이 double, 즉 양의 정수가 아닐 경우도 있기 때문에, if문으로 양의 정수로 나올 경우를 따로 뽑아낸다.
x를 int로 형변환 하면 정수값만 나오니까, 그 정수값과 x값이 같은지 체크하면 양의 정수를 제곱근으로 갖는 경우만 골라낼 수 있다.
😂 위의 함수를 쓰지 않고 실행했을 때, 몇몇 테스트는 시간 초과로 통과하지 못했다.
for문으로 제곱근을 구하려고 했었기 때문....ㅎㅎ Math에 들어있는 함수 몇 개는 미리 알아두는 게 좋은 것 같다.
'코딩 테스트' 카테고리의 다른 글
프로그래머스 수박수박수박수박수박수? Java (0) | 2022.08.01 |
---|---|
프로그래머스 이상한 문자 만들기 Java (0) | 2022.07.30 |
프로그래머스 제일 작은 수 제거하기 Java (0) | 2022.07.28 |
프로그래머스 정수 내림차순으로 배치하기 Java (0) | 2022.07.27 |
프로그래머스 자연수 뒤집어 배열로 만들기 Java (0) | 2022.06.19 |
Comments