일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Swift
- 구름TEST
- 아이폰 해상도
- 맥용
- naver
- code
- 알고리즘
- codemonkey
- 아이폰
- 네이버구름
- iPhone
- 네이버알고리즘
- goormtest
- Cordova
- error
- 네이버
- objective-c
- 안드로이드
- algorism
- 구름알고리즘
- java
- 헬스
- Object-c
- 아이폰 비율
- 코딩
- android
- 맥북
- ios
- codility
- 코딩테스트
- Today
- Total
그래오늘은이거야
[Java]goorm test(구름TEST) 암스트롱 수(Narcissistic Number) 본문
[Java]goorm test(구름TEST) 암스트롱 수(Narcissistic Number)
jinhongstar 2019. 8. 30. 14:30안녕하세요 Leo 입니다.
이번 소개해줄 알고리즘 사이트는 구름TEST 라는 사이트 인데요,
NHN에서 투자 받아 개발한 알고리즘 사이트 입니다.
회사면접 코딩테스트를 하는 유명한 사이트죠...
저는 IOS (Object-c , Swift) 위주로 개발을 하고 가끔 안드로이드 개발을 하는데요...
회사에서 Java 로 코딩테스트를 하라고 해서 ... 하라면 해야죠... 풀어봤습니다.
제가 20문제 이상 푼것 같은데 이걸 공유 해드리도록 하죠...
이 글이 누군가에겐 "약"이 되고 누군가에겐 "독"이 될 것이다.
개발자라면 적어도 기본 알고리즘 정도는 스스로 학습하여 풀어봐야 한다.참고로 코딩테스트 문제를 제출 한 심사위원 분도제 블로그에서 답을 확인 한다는 것을 역으로 알아두고 보세요!! ㅎㅎ
알고리즘 문제
문제 : 암스트롱 수는 각 자리 수를 3 제곱 한 결과의 합이 자신과 같은 수를 일컫습니다. [ ex) 153 = 1*1*1 + 5*5*5 + 3*3*3 ]
나열해 보면 0, 1 153, 370, 371, 407 ... 입니다.
특정 수의 범위가 입력되면 범위 내의 암스트롱 수를 출력하는 프로그램을 작성하십시오.
입력
시작 수, 마지막 수(최대 3000)
출력
범위 내의 암스트롱 수
입/출력 예시
⋇ 입출력 형식을 잘 지켜주세요.
␣ : 공백
↵ : 줄바꿈
−⇥ : 탭
보기 입력 1
100 500
출력 1
153 370 371 407
보기 입력 2
100 300
출력 2
153
======================================================================================================
풀이
======================================================================================================
//Please don't change class name 'Main'
import java.util.Scanner;
/**
전제조건!!
100-3000까지의 수
암스트롱의 수는 3자리의 수의 3제곱이 같을때 나오는 수를 말한다.
(3 * 3* 3 + 7 * 7 * 7 + 0 * 0 * 0) 370
범위 내의 암스트롱 수를 출력하려면 최소값이 100이상 되어야 한다.
*/
class Main {
public static void main(String[] args) {
String number;
Scanner scan = new Scanner(System.in);
number = scan.nextLine();
String[] numberArr = number.split(" ");
int firstInt = Integer.parseInt(numberArr[0]);
int secInt = Integer.parseInt(numberArr[1]);
//암스트롱 수의 계산식 범위 착오 3000보다 크면 오류로 판단.
if(firstInt < 100 || secInt > 3000){
return;
}
for(int i=firstInt; i < secInt; i++){
String val = Integer.toString(i);
String[] valArr = val.split("");
int a = Integer.parseInt(valArr[0]);
int b = Integer.parseInt(valArr[1]);
int c = Integer.parseInt(valArr[2]);
int sum = 0;
sum = ((a * a) * a) + ((b * b) * b) + ((c * c) * c);
if (i == sum){
System.out.print(sum + " ");
}
}
}
}
참고로 저는 알고리즘 풀이 점수는 높은 점수는 아닙니다.
일단 푸는 거에 집중했습니다. 알고리즘에 정답은 없습니다.
더 좋은 알고리즘을 만들어 내는게 목표 입니다.
알고리즘에 대하여 더 이야기 하실분은 댓글남겨주세요!
구름TEST 화면
구름테스트, 구름TEST 가 지원하는 프로그래밍 언어
그 외 Scala, Pascal, Lua, Objective-C, Rust, Cobol, Clojure, Smalltalk, Dart, Haskell, Perl, Common Lisp, D, Erlang 등
구름테스트, 구름TEST 를 2019년 현재 적용중인 회사
'세상 개발 > Java(SpringFramework)' 카테고리의 다른 글
[Java]goorm test(구름TEST) Bubble Sort (0) | 2019.08.30 |
---|---|
[Java]goorm test(구름TEST) 범위 내의 숫자를 분해하여 곱한 후 합 구하기 (0) | 2019.08.30 |
[Java]goorm test(구름TEST) 유클리드 호제법 (0) | 2019.08.30 |
[Java]goorm test(구름TEST) 알고리즘 algorithm 소수 판별! 입력된 수가 소수(Prime Number)인지를 판별 (0) | 2019.08.30 |
[Java]goormtest(구름TEST) 점 두개 사이의 거리를 구하는 프로그램을 작성하십시오. (0) | 2019.08.30 |