티스토리 뷰
Project Euler
Project Euler #172: Investigating numbers with few repeated digits
krauser 2016. 6. 25. 00:53문제가 짧군요.
How many 18-digit numbers n (without leading zeros) are there such that no digit occurs more than three times in n?
18자리수중에 어느 한 숫자가 3번넘게 반복되지 않는 경우의 수를 구하랍니다.
난이도가 55%라(푼 문제중 60%가 최고난도) 쫄아가지고 보류해놨는데 알고보니까 쉬운 문제네요 ㅇㅅㅇ;;
일단 1)쓰이는 서로 다른 숫자의 갯수를 정했습니다. 모든 수가 3번씩 쓰일 경우, 6개의 서로 다른 숫자가 쓰일거고, 10개의 모든 한자리수가 쓰일수가 있겠죠.
2)각 숫자가 몇번 등장하는지를 구했습니다. n번(1,2,3)쓰이는 숫자의 갯수를 xn이라 하면 x1+x2+x3=k(k는 6부터 10), x1+2*x2+3*x3=18이 되겠죠. 이렇게 쓰이는 숫자의 종류와 각각 몇번쓰이는 질 알면 이 조합으로 몇개의 숫자가 만들어지는 지를 구했습니다. 이를 다 더합니다.
3)모든 수는 동등한 지위(말 표현이 이상하지만...)를 가지고 있으므로 1이 앞에 올 경우의 수나 2가 앞에 올 경우의 수나 다 같습니다. 이때 0이 앞에 올 경우만 빼주면 되니까 2에서 구한 경우의 수에 9/10을 곱해줍니다.
이렇게 코드를 짜면..
16ms 정도 걸리네요
'Project Euler' 카테고리의 다른 글
prob130: Composites with prime repunit property (0) | 2016.07.31 |
---|---|
Project Euler #549: Divisibility of factorials (0) | 2016.06.23 |
Project Euler #94 Almost equilateral triangles (0) | 2016.06.05 |
Project Euler #75 Singular integer right triangles (0) | 2016.06.05 |
Project Euler #381: (prime-k) factorial (0) | 2016.06.04 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 알고리즘
- 물리
- 선형대수학
- repunit
- project euler
- 대학생활
- 공대
- 군대
- 컴공
- coding
- 정수론
- 미적분
- 회상
- 코딩연습
- 대학
- 수학
- 취미
- 피타고라스
- 프로그래밍
- 대수경
- MATLAB
- 복학생
- pell's equation
- 텝스
- Problem Solving
- 사망년
- 공부
- 복학
- 코딩
- projecteuler
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
글 보관함