Notice
Recent Posts
Recent Comments
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 쉽게 배우는 운영체제 솔루션
- Gundam
- 운영체제 정리
- Project Euler Problem
- 운영체제 문제 풀이
- hg
- 건담 프라모델
- OS 구조와 원리
- 프라모델
- OS
- 건담 엑스포
- OS 강의
- 쉽게 배우는 운영체제 풀이
- 운영체제 만들기
- 운영체제
- OS 그래픽 처리
- OS 제작
- 운영체제 제작
- 쉽게 배우는 운영체제 연습문제
- OS강의
- 맛집
- 30일
- project euler
- 건담
- rg
- 맛집 추천
- 쉽게 배우는 운영체제
- Project Euler 해답
- 건프라
- os 만들기
Archives
- Today
- Total
밤색모자이크의 개발이야기
Project Euler Problem 4 : 세자리 수를 곱해 만들 수 있는 가장 큰 대칭수 본문
Algorithm/Project Euler
Project Euler Problem 4 : 세자리 수를 곱해 만들 수 있는 가장 큰 대칭수
밤색모자이크 2017. 6. 18. 21:38Project Euler 문제를 해답을 포스팅합니다.
※ 주의 : 최적화는 할 수 있는 만큼했습니다. 따라서 속도면에서는 많이 부족합니다.
문제를 푸는데 목표를 두었고 또한 TDD를 최대한 활용하였습니다.
몇가지 문제의 경우 TDD를 안한 경우도 있습니다.
혹시, 최적화 또는 속도 증가에 대한 부분을 지적해주실 분은 너무나도 감사합니다.
Project Euler Problem 4
앞에서부터 읽을 때나 뒤에서부터 읽을 때나 모양이 같은 수를 대칭수(palindrome)라고 부릅니다.
두 자리 수를 곱해 만들 수 있는 대칭수 중 가장 큰 수는 9009 (= 91 × 99) 입니다.
세 자리 수를 곱해 만들 수 있는 가장 큰 대칭수는 얼마입니까?
Source Code
Class TestClass Code
public class TestClass { @Test public void testFirst() { PalindromeInspector inspector = new PalindromeInspector(); Integer testNum = 1991; Integer testNum2 = 1188; assertTrue(inspector.inspecte(testNum.toString())); assertFalse(inspector.inspecte(testNum2.toString())); } }
Class PalindromeInspector Code
public class PalindromeInspector { public boolean inspecte(String string) { for(int i=0; i<string.length()/2; i++) if(string.charAt(i) != string.charAt(string.length() - i - 1)) return false; return true; } }
Class Main Code
public class Main { public static void main(String [] args) { int maxNum = 0; PalindromeInspector inspector = new PalindromeInspector(); for(int frontNum=100; frontNum<1000; frontNum++) { for(int tailNum=100; tailNum<1000; tailNum++) { Integer testNum = frontNum * tailNum; if(inspector.inspecte(testNum.toString())) { if(maxNum < testNum) maxNum = testNum; } }//end of tailNum }//end of frontNum System.out.println(maxNum); } }
'Algorithm > Project Euler' 카테고리의 다른 글
Project Euler Problem 6 : 1부터 100까지 "제곱의 합"과 "합의 제곱"의 차는? (0) | 2017.06.18 |
---|---|
Project Euler Problem 5 : 1 ~ 20 사이의 어떤 수로도 나누어 떨어지는 가장 작은 수 (0) | 2017.06.18 |
Project Euler Problem 3 : 가장 큰 소인수 구하기 (0) | 2017.06.18 |
Project Euler Problem 2 : 피보나치 수열에서 4백만 이하이면서 짝수인 항의 합 (0) | 2017.04.26 |
Project Euler Problem 1 : 1000보다 작은 자연수 중에서 3 또는 5의 배수를 모두 더하면? (0) | 2017.04.26 |
Comments