Java68 [JAVA] 10872번 (재귀) 문제: 0보다 크거나 같은 정수 N. N!을 출력하는 프로그램을 작성 입력: 첫째 줄에 정수 N(0 ≤ N ≤ 12) 출력: 첫째 줄에 N!을 출력 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); int N = in.nextInt(); in.close(); int sum = factorial(N); System.out.println(sum); } public static int factorial(int number) { if (number for문을 사용해서 -> i번째까지 계속 서로 곱하게 -> for문을 사용하니까 재귀를 활용하기.. 2022. 10. 21. [JAVA] 백준2562번 (배열) 문제 9개의 서로 다른 자연수가 주어질 때, 이들 중 최댓값을 찾고 그 최댓값이 몇 번째 수인지 입력 : 첫째 줄부터 아홉 번째 줄까지 한 줄에 하나의 자연수가 주어짐 출력 : 첫째 줄에 최댓값을 출력하고, 둘째 줄에 최댓값이 몇 번째 수인지 흐름 스캐너로 num을 받기 for문 9번까지 반복해서 입력하기 첫째줄 최대값, 둘째줄 최대값이 몇 번째 수인지 import java.util.Scanner; public class B2562 { public static void main(String[] args) { //수를 입력받기 /* Scanner in = new Scanner(System.in); int num = in.nextInt(); int[] arr = new int[9]; for (int i = .. 2022. 10. 21. [JAVA] Json 페어 문제 JSON? JavaScript Object Notation -> 데이터 교환을 위해 만들어진 객체 형태의 포맷 JSON과 JS의 차이 JSON.stringify() 메서드는 JavaScript 값이나 객체를 JSON 문자열로 변환합니다. 선택적으로, replacer를 함수로 전달할 경우 변환 전 값을 변형할 수 있고, 배열로 전달할 경우 지정한 속성만 결과에 포함합니다. 문자 반환 재귀함수 문제 페어 풀이 import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; import org.w3c.dom.ls.LSOutput; import java.util.*; public.. 2022. 10. 21. [JAVA] 원금 2배되는 기간 문제: 원금 2배되는 기간 해결 과정 기간이 되는 것 선언 -> 빠진 것: 연이율, 원금 if문 사용해서 2배가 되는 조건 걺 -> if문이 아니라 while을 사용해서 조건이 만족되면 year을 올려야 됨 -> 조건: 원금*연이율이 2배가 되기 전까지 구현 public class Main { public int computeWhenDouble(double interestRate) { // TODO: double rate = 1 + interestRate / 100; //연이율 double principal = 1; //원금 int year = 0; //기간 while (principal < 2){ principal = principal * rate; year++; } return year; } } 2022. 10. 21. [JAVA] 백준 10818번 (배열) 문제 N개의 정수가 주어진다. 이때, 최솟값과 최댓값을 구하는 프로그램을 작성 입력: 모든 정수는 -1,000,000보다 크거나 같고, 1,000,000보다 작거나 같은 정수 출력: 첫째 줄에 주어진 정수 N개의 최솟값과 최댓값을 공백으로 구분해 출력 흐름 N개의 정수가 들어가는 배열 최댓값 최솟값을 구하기 -> for문을 사용해서 비교 -> 비교해서 풀려고 했는데, 구상이 잘 안돼서 sort로 바꿈 출력할 때 공백을 넣어줘야 됨 구현 import java.util.Arrays; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); //사.. 2022. 10. 21. 재귀함수 재귀함수의 특징 재귀함수의 장점 코드 간결, 수정 용이 변수를 여러개 사용할 필요가없음 재귀함수의 단점 코드의 흐름을 직관적으로 파악하기 어려움 반복하여 매서드를 호출하며 지역변수, 매개변수, 반환값을 모두 process stack에 저장 → 반복문에 비해서 메모리를 더 많이 사용하게 되어 많은 메모리를 사용 메서드를 호출하고 매서드가 종료된 이후에 복귀를 위한 컨텍스트 스위칭 비용이 발생 재귀함수의 템플릿 public type recursive(input1, input2, ...) { // Base Case : 문제를 더 이상 쪼갤 수 없는 경우 if (문제를 더 이상 쪼갤 수 없을 경우) { return 단순한 문제의 해답; } // recursive Case // 그렇지 않은 경우 return 더 .. 2022. 10. 21. [JAVA] hashmap을 사용해 배열의 첫 요소와 마지막 요소 받기 hashmap을 사용해 배열의 첫 요소와 마지막 요소 받기 //첫 요소와 마지막 요소 HashMap을 리턴 package com.codestates.coplit; import java.util.*; public class Main { public HashMap transformFirstAndLast(String[] arr) { // TODO: if (arr.length == 0){ return null; } //빈 배열일 때 null 반환 HashMap result = new HashMap (); //결과를 받을 해쉬맵 생성 result.put(arr[0], arr[arr.length -1]); return result; } } `HashMap result = new HashMap ();` 결과를 받을 .. 2022. 10. 21. [JAVA] 재귀함수 연습 문제 1. 1부터 num까지의 합을 리턴 return num + sumTo(num -1); num에 -1을 빼서 n번째까지 계속 반복 2. 홀수인지 여부 확인 if (num == 0) return false; if (num == 1) return true;return isOdd(num -2) 계속 2씩 빼면서 0이나 1이 나올 때까지 반복 3. n! return num * factorial(num -1); n* n-1 반복 4. 피보나치 수열 return fibonacci(num -1) + fibonacci(num -2); 피보나치(앞에 두 수의 합) 5. 배열의 합 int head = arr[0]; int[] tail = Arrays.copyOfRange(arr, 1, arr.length); return h.. 2022. 10. 21. 이전 1 ··· 4 5 6 7 다음 728x90