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 |
Tags
- 파이썬
- array
- simulation
- dynamic programming
- Tree
- 코딩테스트
- implement
- geometry
- database
- java
- string
- Data Structure
- Matrix
- sorting
- Counting
- Binary Search
- Stack
- Method
- hash table
- greedy
- Class
- 코테
- two pointers
- SQL
- bit manipulation
- Binary Tree
- 자바
- Number Theory
- 구현
- Math
Archives
- Today
- Total
코린이의 소소한 공부노트
[프로그래머스/Lv.1] 정수 제곱근 판별 본문
1. Input
1) 양의 정수 n
2. Output
1) n이 양의 정수 x의 제곱이라면 x+1의 제곱을 반환
2) n이 제곱수가 아니라면 –1을 반환
3. Constraint
1) n은 1이상, 50,000,000,000,000 이하인 양의 정수
2) 반환 타입은 long
4. Example
Input: n=121 -> Output: 144
Input: n=3 -> Output: -1
설명:
- 121은 11의 제곱이므로 (11+1)의 제곱인 144를 반환
- 3은 제곱수가 아니므로 –1을 반환
5. Code
1) 첫 코드(2022/??)
long answer = -1;
long x = 1;
long x_exp = x*x;
while(true){
if(x_exp > n) break;
else if(x_exp == n) {
answer = (x+1)*(x+1);
break;
}
x++;
x_exp = x*x;
}
return answer;
2) 변수 x_exp를 없앤 코드(2022/11/24)
long answer = -1;
long i = 0;
while(true){
if(i*i > n) break;
else if(i*i == n){
answer = (i+1)*(i+1); break;
}
else i++;
}
return answer;
- 1번 코드보다 미세하게 빠름
'코딩테스트 풀이 > JAVA' 카테고리의 다른 글
[프로그래머스/Lv.1] 자연수 뒤집어 배열로 만들기 (0) | 2022.11.24 |
---|---|
[프로그래머스/Lv.1] 정수 내림차순으로 배치하기 (0) | 2022.11.24 |
[프로그래머스/Lv.1] 제일 작은 수 제거하기 (0) | 2022.11.24 |
[프로그래머스/Lv.1] 짝수와 홀수 (0) | 2022.11.24 |
[프로그래머스/Lv.2] N개의 최소공배수 (0) | 2022.11.23 |