Posted by 용식
TAG Hash, RUBY

Posted by 용식
TAG Hash, perl


숫자 1406357289은 0 ~ 9 팬디지털인데, 부분열에 관련된 재미있는 성질을 가지고 있습니다.

d1을 첫째 자리수, d2를 둘째 자리수...라고 했을 때, 다음과 같은 사실을 발견할 수 있습니다.

  • d2 d3 d4 = 406 → 2로 나누어 떨어짐
  • d3 d4 d5 = 063 → 3으로 나누어 떨어짐
  • d4 d5 d6 = 635 → 5로 나누어 떨어짐
  • d5 d6 d7 = 357 → 7로 나누어 떨어짐
  • d6 d7 d8 = 572 → 11로 나누어 떨어짐
  • d7 d8 d9 = 728 → 13으로 나누어 떨어짐
  • d8 d9 d10 = 289 → 17로 나누어 떨어짐

위와 같은 성질을 갖는 0 ~ 9 팬디지털을 모두 찾아서 그 합을 구하면 얼마입니까?


팬디지털 생성만 알면 그 다음은 그냥 평이한문제..
순열을 사용해 10자리 팬디지털을 생성 후 조건에 맞는 것을 찾음


 

Python
Ruby
Perl
Posted by 용식


세 변의 길이가 모두 자연수 {a, b, c}인 직각삼각형의 둘레를 p 로 둘 때, p = 120 을 만족하는 직각삼각형은 아래와 같이 세 개가 있습니다.

{20, 48, 52}, {24, 45, 51}, {30, 40, 50}

1000 이하의 둘레 p에 대해서, 직각삼각형이 가장 많이 만들어지는 p의 값은 얼마입니까?


평범한 문제.
직각 삼각형 나오면 일단 피타고라스의 정리..
다만, a,b,c사이의 관계에 따라서 조건을 좀 더 줄여 줄 수 있을 것 같지만
그냥 각각 1~1000까지 loop돌면서 모든 case에 대해 brute-force 로직 적용.

 

Python
Ruby
Perl
Posted by 용식

Posted by 용식

Posted by 용식

[Perl] Set의 구현

Perl 2012.02.25 00:05
조금 찾아보니
CPAN에 모듈이 있는 것 같기도 하고..
hash를 사용해 구현하기도 하는 듯...
 
Posted by 용식
TAG Hash, perl, Set


1부터 n까지의 자연수를 차례로 더하여 구해진 값을 삼각수라고 합니다.
예를 들어 7번째 삼각수는 1 + 2 + 3 + 4 + 5 + 6 + 7 = 28이 됩니다.
이런 식으로 삼각수를 구해 나가면 다음과 같습니다.

1, 3, 6, 10, 15, 21, 28, 36, 45, 55, ...

이 삼각수들의 약수를 구해봅시다.

 1: 1
 3: 1, 3
 6: 1, 2, 3, 6
10: 1, 2, 5, 10
15: 1, 3, 5, 15
21: 1, 3, 7, 21
28: 1, 2, 4, 7, 14, 28

위에서 보듯이, 5개 이상의 약수를 갖는 첫번째 삼각수는 28입니다.

그러면 500개 이상의 약수를 갖는 가장 작은 삼각수는 얼마입니까?



소인수의 개수와 약수의 개수를 헷갈려서 맥북 이륙 좀 시키다가 이상하다 싶어서 다시 풀었음..;;
외국 사이트에서는 풀었냐 못 풀었냐가 아니라
몇초안에 답이 나왔냐가 중요한 문제이구만..ㅋㅋ 그래서 나도.. time 코드를 삽입.
문제 풀이자들이 자랑하는 풀이보다 약 9배 느림 ㅋ
Python
2.7버전으로 보이고.. 실행은 해보지 않았으나 0.Xs의 시간이 걸린다고 함..
Ruby
문제가 어려워진다..--;

Perl
Posted by 용식