문제 설명
정수 배열 nums가 주어집니다.
0 <= a < b < nums.length 이면서 nums[a] == nums[b]를 만족하는 a, b 쌍의 개수를 출력하는 프로그램을 구현하세요.
입력 형식
· nums : 정수 배열
· a, b, : 0 이상의 정수
출력 형식
· 문제의 조건을 만족하는 a, b의 쌍의 개수를 정수로 반환
제약 사항
· 0 <= nums.length <= 100
· 1 <= nums[i] <= 100
입출력 예시
· 입력
· nums = {2, 5, 6, 3, 2, 6, 6}
· 출력 : 4
· 설명 : 조건을 만족하는 a, b 쌍은 아래와 같다.
· (0, 4), (2, 5), (2, 6), (5, 6)
작성 코드
import java.util.HashMap;
import java.util.Map;
class Solution244 {
public int solution(int[] nums) {
int count = 0;
Map<Integer, Integer> map = new HashMap<>();
for (int num : nums) {
if (map.containsKey(num)) {
count += map.get(num);
map.put(num, map.get(num) + 1);
} else {
map.put(num, 1);
}
}
return count;
}
public static void main(String[] args) {
Solution244 st = new Solution244();
int[] nums = {2, 5, 6, 3, 2, 6, 6};
System.out.println(st.solution(nums));
}
}
/*
이 코드에서는 Map을 사용하여 각 숫자가 몇 번 등장하는지 저장합니다.
만약 이미 등장한 숫자라면, 해당 숫자가 등장한 횟수만큼 중복된 쌍이 추가됩니다.
숫자가 처음 등장하는 경우에는 Map에 1을 값으로 저장합니다.
반복이 끝나면 중복된 값을 가지는 쌍의 개수를 반환합니다.
*/
정답 코드
class Solution {
public int solution(int[] nums) {
int result = 0;
for (int i = 0; i < nums.length - 1; i++) {
for (int j = i + 1; j < nums.length; j++) {
if (nums[i] == nums[j]) {
result++;
}
}
}
return result;
}
public static void main(String[] args) {
Solution st = new Solution();
int[] nums = {2, 5, 6, 3, 2, 6, 6};
System.out.println(st.solution(nums));
}
}
'연습 코딩테스트' 카테고리의 다른 글
연습문제 2-5(1) 단어가 문장의 몇 번째 단어와 일치하는지 (0) | 2023.04.08 |
---|---|
연습문제 2-4(5) 접두사가 되는 요소의 개수 (0) | 2023.04.08 |
연습문제 2-4(3) 문자열 회전에 의한 결과 판단 (0) | 2023.04.08 |
연습문제 2-4(2) 만들 수 있는 숫자 중 K번째로 큰 숫자 (0) | 2023.04.08 |
연습문제 2-4(1) K가 자릿수로 등장한 횟수 (0) | 2023.04.08 |