반응형
[ Contents ]
1. 문제 (링크 참조)
2. 문제 풀이
10개의 수를 입력받아 42로 나눈 나머지 중 중복값을 제거한 개수를 구하는 문제입니다.
2022.01.19 - [Algorithm] - [Algorithm] 단골 1번 문제, 구현 / 수학
42로 나눈 나머지를 구하는 과정을 쉽습니다. 다만, 중복값을 제거하는 방법이 고민이 됩니다.
단순하게 비교할 대상이 10개 밖에 되지 않으니, 서로 비교하여 중복값을 찾아낼 수 있습니다. 또 다른 방법은 배열(리스트)을 활용합니다. 나머지는 0~41까지 42개 정도로 범위가 적으니, 배열(리스트) 항목으로 체크할 수 있습니다.
3. 코드
remainder = [0]*43
for i in range(10):
n = int(input())
n %= 42
if remainder[n] == 0:
remainder[n] += 1
print(sum(remainder))
나머지 값에 해당하는 리스트 항목에 표시하고, 중복값일 경우 무시하도록 코드를 작성했습니다.
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int[] num = new int[10];
for(int i = 0; i < 10; i++) {
num[i] = sc.nextInt();
num[i] %= 42;
}
int sum = 10;
int same = 0;
for(int i = 0; i < 10; i++) {
for(int j = i; j < 10; j++) {
if(num[i] == num[j])
same++;
}
if(same > 1) {
sum -= 1;
}
same = 0;
}
System.out.println(sum);
sc.close();
}
}
Java 코드에서는 10개의 항목을 서로 비교하여, 중복값을 제거하는 방식을 사용했습니다.
반응형
'Algorithm' 카테고리의 다른 글
[구현/수학] 백준 2739 구구단 - Python, C (0) | 2022.01.27 |
---|---|
[구현/수학] 백준 1000 A+B - Python, C (0) | 2022.01.27 |
[Algorithm] 탐욕적인 그리디 알고리즘, 직관적이고 쉬운 문제해결 (0) | 2022.01.26 |
[구현/수학] 백준 4344 평균은 넘겠지 - Python, Java (0) | 2022.01.26 |
[수학/DP] 백준 2839 설탕 배달 - Python, Java (0) | 2022.01.25 |
댓글