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
- simulation
- array
- Data Structure
- Number Theory
- 자바
- 구현
- java
- database
- string
- 파이썬
- hash table
- Matrix
- greedy
- Counting
- two pointers
- Tree
- Class
- Method
- geometry
- 코테
- bit manipulation
- sorting
- Binary Tree
- SQL
- Stack
- dynamic programming
- 코딩테스트
- implement
- Binary Search
- Math
Archives
- Today
- Total
코린이의 소소한 공부노트
[LeetCode/Easy] 2748. Number of Beautiful Pairs 본문
1. Input
1) int[] nums
2. Output
1) i<j인 nums[i]와 nums[j]에 대해서, nums[i]의 첫 번째 숫자와 nums[j]의 마지막 숫자가 아름다운 순서쌍인 개수를 반환
- 두 수가 아름다운 순서쌍이라는 것은 두 수가 서로소인 것을 말한다.
- 서로소는 최대공약수가 1인 두 수의 관계를 말한다.
3. Constraint
1) 2 <= nums.length <= 100
2) 1 <= nums[i] <= 9999
3) nums[i] % 10 != 0
4. Example
Input: nums = [11,21,12] -> Output: 2
설명: 순서쌍의 후보는 총 3개이다.
- i=0, j=1 : 1과 1의 최대공약수는 1이므로 서로소이다.
- i=0, j=2 : 1과 2의 최대공약수는 1이므로 서로소이다.
- i=1, j=2 : 2와 2의 최대공약수는 2이므로 서로소가 아니다.
5. Code
class Solution {
public int countBeautifulPairs(int[] nums) {
int count = 0;
for(int i=0 ; i<nums.length-1 ; i++)
for(int j=i+1 ; j<nums.length ; j++){
int n = nums[i], x = 0, y = nums[j]%10;
while(n>0){
x = n%10;
n /= 10;
}
if(gcd(x,y)==1)
count++;
}
return count;
}
static int gcd(int a, int b){
if(a==1 || b==1) return 1;
for(int i=Math.min(a,b) ; i>1 ; i--)
if(a%i==0 && b%i==0)
return i;
return 1;
}
}
- 48%, 98%
'코딩테스트 풀이 > JAVA' 카테고리의 다른 글
[백준 온라인 저지] 4673. 셀프 넘버 (0) | 2023.07.01 |
---|---|
[백준 온라인 저지] 6588. 골드바흐의 추측 (0) | 2023.07.01 |
[LeetCode/Easy] 2744. Find Maximum Number of String Pairs (0) | 2023.06.30 |
[LeetCode/Easy] 2739. Total Distance Traveled (0) | 2023.06.30 |
[LeetCode/Easy] 2733. Neither Minimum nor Maximum (0) | 2023.06.30 |