[JAVA] 백준2562번 (배열)
문제
9개의 서로 다른 자연수가 주어질 때, 이들 중 최댓값을 찾고 그 최댓값이 몇 번째 수인지
입력 : 첫째 줄부터 아홉 번째 줄까지 한 줄에 하나의 자연수가 주어짐
출력 : 첫째 줄에 최댓값을 출력하고, 둘째 줄에 최댓값이 몇 번째 수인지
흐름
스캐너로 num을 받기
for문 9번까지 반복해서 입력하기
첫째줄 최대값, 둘째줄 최대값이 몇 번째 수인지
import java.util.Scanner;
public class B2562 {
public static void main(String[] args) {
//수를 입력받기
...
[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;...
[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...
[JAVA] 백준 10818번 (배열)
문제
N개의 정수가 주어진다. 이때, 최솟값과 최댓값을 구하는 프로그램을 작성
입력: 모든 정수는 -1,000,000보다 크거나 같고, 1,000,000보다 작거나 같은 정수
출력: 첫째 줄에 주어진 정수 N개의 최솟값과 최댓값을 공백으로 구분해 출력
흐름
N개의 정수가 들어가는 배열
최댓값 최솟값을 구하기 -> for문을 사용해서 비교
-> 비교해서 풀려고 했는데, 구상이 잘 안돼서 sort로 바꿈
출력할 때 공백을 넣어줘야 됨
구현
import java.util.Arrays;
import java.util.Scanner;
pub...
[JAVA] hashmap을 사용해 배열의 첫 요소와 마지막 요소 받기
hashmap을 사용해 배열의 첫 요소와 마지막 요소 받기
//첫 요소와 마지막 요소 HashMap을 리턴
package com.codestates.coplit;
import java.util.*;
public class Main {
public HashMap<String, String> transformFirstAndLast(String[] arr) {
// TODO:
if (arr.length == 0){
return null;
}
//빈 배열일 때 null 반환
HashMap <String...
재귀함수
재귀함수의 특징
재귀함수의 장점
코드 간결, 수정 용이
변수를 여러개 사용할 필요가없음
재귀함수의 단점
코드의 흐름을 직관적으로 파악하기 어려움
반복하여 매서드를 호출하며 지역변수, 매개변수, 반환값을 모두 process stack에 저장
→ 반복문에 비해서 메모리를 더 많이 사용하게 되어 많은 메모리를 사용
메서드를 호출하고 매서드가 종료된 이후에 복귀를 위한 컨텍스트 스위칭 비용이 발생
재귀함수의 템플릿
public type recursive(input1, input2, ...) {
// Base Case : 문제를 더 이상 쪼갤 수 없는 경우
if (문제...
[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...
66 post articles, 10 pages.