728x90
반응형
피보나치 수열
package CodingTestLv1;
public class Fibonachi {
public static void main(String[] args) {
// 예) 0, 1, 1, 2, 3, 5, 8, 13 21 34 55
//피보나치 수열이란, 첫 번째 항의 값이 0이고 두 번째 항의 값이 1일 때
//이후의 항들은 이전의 두 항을 더한 값으로 이루어지는 수열을 말한다.
int count = 10;
for(int i = 0; i<count; i++) {
System.out.println(fibo(i));
}
}
public static int fibo(int a) {
if(a<2)
return a;
else
return fibo(a-2) + fibo(a-1);
}
}
숫자 곱셈
예시:
// 13 = 1 * 3 = 3
// 14 = 1 * 4 = 4
// 15 = 1 * 5 = 5
//
// 그러므로, 이 경우의 답은 3+4+5 = 12
코드 설명:
- String Array에 곱할 숫자 개수를 입력하고 str[i]에 array 숫자만큼 10부터 시작하는 int value를 입력한다.
- 받은 입력값을 String list에 받은 후에 그 리스트를 char.array()를 사용하여 tmp char array로 받아온다
- 다시 char L이라는 변수에 tmp array의 값을 하나씩 저장한 후에
- 위의 mul이라는 인트값 1에 저장된 값을 곱한다.
- char 값 그대로 곱하면 정수화된 char 값이 곱해지므로 꼭 get.NumericValue를 쓰던지 - '0'을 해줘야 함
- 곱한 값을 result에 누적 더하고 곱셈되서 변한 mul값을 그대로 두번째 char L의 값에 곱하여 result에 누적 더하면
- 두자리 수의 int 값을 서로 곱한 값이 됨
- 이 과정을 모든 저장된 String값 숫자에 적용하여 예시해결 완료
package CodingTestLv1;
import java.util.ArrayList;
import java.util.Arrays;
public class NumberMultiply {
public static void main(String[] args) {
String[] str = new String [10];
for(int i = 0; i<str.length; i++) {
str[i] = ""+(i+20);
}
int result = 0;
for(String list : str) {
char[] tmp = list.toCharArray();
int mul = 1 ;
// 연산이 2개 되고 다시 돌아가면서 전값을 가지므로다음 값에 곱해지는 것과 동일함
// 값을 곱한 후에 연산이 끝나면서 1로 돌아가기 때문에 다시 두번째 자리를 가진 값과 동일한 값을 가지고
// 첫번째 자리로 곱해줄 수 있음
for(char L : tmp) {
mul*=Character.getNumericValue(L);
}
result += mul;
}
System.out.println("\nresult: " + result);
}
}
728x90
반응형
'알고리즘 풀이 > Java' 카테고리의 다른 글
Level 2 코딩 문제풀이 - 짝수번째 숫자 치환 & 배수 특정 숫자 찾기 (0) | 2022.02.15 |
---|---|
Level 2 코딩 문제풀이 - 다음 입사 문제, 숫자 사이클 길이 (0) | 2022.02.10 |
Level 2 코딩 문제풀이 - 구글입사문제, 하위 디렉토리 파일 찾기 (0) | 2022.02.09 |
겹치는 숫자 제거 & OX 프린트 & 버전 크기 비교 - 코딩 문제 풀이 (0) | 2022.01.28 |