[백준 / BOJ] 3052번 나머지 (C++, Python)◎ 자료구조와 알고리즘/백준(BOJ) 문제풀이2021. 9. 5. 12:23
Table of Contents
반응형
링크 : https://www.acmicpc.net/problem/3052
문제
문제 풀이
이전 문제와 비슷한 아이디어를 사용하면 된다. 관건은 나머지 연산자를 얼마나 잘 활용하는가에 있다.
C++ 상세 풀이
더보기
for (int i = 0; i < 10; i++)
{
std::cin >> n;
if (!arr[n % 42]++)
sum++;
}
42로 나눈 나머지를 구하는 것이므로 arr의 크기를 42로 설정한다. 또한 전역변수로 선언했으니 모두 0으로 초기화되어 있을 것이다.
arr[n % 42]가 0이라면 if문에서 걸려 1로 증가시켜준 후 sum 변수를 1 증가시켜준다. 이후에 같은 나머지가 if문에 들어와도 이미 값이 1이기 때문에 자동으로 넘어가게 되고, 최종적으로 sum 변수에 서로 다른 값의 합계가 저장된다.
Python 상세 풀이
더보기
for i in range(10):
n = int(input())
arr.append(n % 42)
arr = set(arr) # 중복이 제거된다.
중복을 없애주는 집합을 잘 활용하면 쉽게 풀린다.
C++ 코드 전문
Python 코드 전문
소감
반응형
'◎ 자료구조와 알고리즘 > 백준(BOJ) 문제풀이' 카테고리의 다른 글
[백준 / BOJ] 8958번 OX퀴즈 (C++, Python) (0) | 2021.09.05 |
---|---|
[백준 / BOJ] 1546번 평균 (C++, Python) (0) | 2021.09.05 |
[백준 / BOJ] 2577번 숫자의 개수 (C++, Python) (0) | 2021.09.04 |
[백준 / BOJ] 2562번 최댓값 (C++, Python) (0) | 2021.09.04 |
[백준 / BOJ] 10818번 최소, 최대 (C++, Python) (0) | 2021.08.25 |
@Reo :: 코드 아카이브
자기계발 블로그