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
- 구현
- SQL
- simulation
- 파이썬
- string
- 코딩테스트
- Stack
- hash table
- Binary Search
- Math
- 자바
- array
- Matrix
- Tree
- Method
- dynamic programming
- java
- 코테
- bit manipulation
- Number Theory
- Binary Tree
- implement
- geometry
- database
- sorting
- Class
- greedy
- Counting
- Data Structure
- two pointers
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 |