오늘 같이 수업을 듣는 훈련생들과 함께 지난 자바 수업 때 배웠던 내용들을 토대로 예제를 풀어보았다.
총 4문제를 풀었으며, 7명 정도 문제에 대한 각자의 풀이 방법을 공유하며 많은 정보와 신박한 방법들을
배울 수 있었다! :D
지불한 금액을 나타내는 파라미터1, 물건의 가격을 나타내는 파라미터2
이렇게 두 개의 파라미터를 받아 가작 적은 수의 지폐를 거슬러 주는 메소드를 만들어 주세요.
(단위는 50000, 10000, 5000, 1000 원입니다.)
그래서 고안해낸 것이 몫과 나머지다!
거스름돈에서 순차적으로 차감을 하지 않고, 지폐의 단위에 대한 몫과 나머지를 계산함으로써
보다 간단한 식이 완성되었다.
마지막으로, 지폐의 단위에 따라 나뉘어져 있던 계산식을 반복문을 통해 간편하게 계산할 수 있었다.
최종적인 결과 코드이다.
파라미터로 양의 정수 n을 받고 n!을 계산해서 리턴해주는 메소드를 만들어 보세요!
(주의! : 0!은 1입니다. System.out.println(factorial(0)); -> 1 출력)
마지막으로 코드를 다듬게 되었다.
자세한 출력을 도출하였으며, 마지막 숫자가 곱해질 때는 숫자만 출력하도록 for문 다음 if문을 사용하였다.
피보나치 수열이란?
1, 1, 2, 3, 5, 8, 13, 21, 34, 55,... 과 같이
1, 1로 시작해서 앞의 두항의 합이 뒤의 항으로 이루어진 수열입니다.
문제 : 파라미터로 총 항의 수(n)를 받고, 입력한 총 항을 차례대로 출력하는 메소드를 만들어 보세요!
마지막으로, 스터디를 통해 코드를 다듬었다.
배열을 만들어 for문 이용이 보다 용이하였으며, 배열을 String으로 변환하여 출력함으로 결과의 가독성을 증가시켰다.
초안은 주어진 배열에서 0번째 인덱스에서 1번째 인덱스와의 대소 비교를 통해, 큰 값이 오른쪽에 위치하도록
배열의 원소들을 자리 교체하였다. 그다음은 1번째와 2번째 원소들끼리 동일한 과정을 거쳐 배열에서의 최댓값이
마지막 원소에 위치하도록 알고리즘을 구성하였다.
(배열의 원소들의 자리교체는 '값의 저장값' 을 선언하고 이용하였다.)
그 다음은 배열에서 마지막 원소는 최댓값이기에, 마지막 원소를 뺀 나머지 배열의 원소들에 위와 동일한 과정을 진행하였다.
따라서, 위의 과정은 총 배열의 원소의 갯수 - 1개 만큼 진행을 하여야 하며
원소들끼리 값을 비교해 최댓값을 도출하는 것은 배열의 원소의 갯수 - 1 - 과정의 횟수만큼 진행이 되어야한다.
(과정이 지날수록 맨 마지막 배열의 원소는 포함하지 않으므로)
이에 따라 오름차순으로 정렬된 배열을 만들어낼 수 있었다!