![[백준 / BOJ] 3052번 나머지 (C++, Python)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbMUuvA%2FbtrJhyT5ZlS%2Fs9fG8JsNFl387NPugZpU51%2Fimg.png)
[백준 / BOJ] 3052번 나머지 (C++, Python)◎ 자료구조와 알고리즘/백준(BOJ) 문제풀이2021. 9. 5. 12:23
Table of Contents
반응형
링크 : https://www.acmicpc.net/problem/3052
3052번: 나머지
각 수를 42로 나눈 나머지는 39, 40, 41, 0, 1, 2, 40, 41, 0, 1이다. 서로 다른 값은 6개가 있다.
www.acmicpc.net
문제
문제 풀이
이전 문제와 비슷한 아이디어를 사용하면 된다. 관건은 나머지 연산자를 얼마나 잘 활용하는가에 있다.
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 :: 코드 아카이브
자기계발 블로그