자바 9

코틀린을 사용한 스프링 프로젝트에서 자바를 사용 할 때 자바 파일을 못 찾는 오류

문제 상황 코틀린을 이용한 스프링 프로젝트에서 BalanceController 를 자바로 작성 했을때, postman으로 api 테스트 시 해당 컨트롤러 내의 url를 찾지 못했다. 오류  @RestController @RequestMapping("/account") public class BalanceController { private final Database db; public BalanceController(Database db) { this.db = db; } @GetMapping("{id}/balance") public Account balance(@PathVariable long id) { return..

개발 2024.02.24

자바 - 백준 14889 / 스타트와 링크

https://www.acmicpc.net/problem/14889 14889번: 스타트와 링크 예제 2의 경우에 (1, 3, 6), (2, 4, 5)로 팀을 나누면 되고, 예제 3의 경우에는 (1, 2, 4, 5), (3, 6, 7, 8)로 팀을 나누면 된다. www.acmicpc.net 실버 2 구현 방법 처음에 보고 재귀로 풀어야 겠다는 생각이 들어서 바로 풀었지만 시간 초과가 났다. 생각해보니 문제는 조합을 의도한거였는데 순열로 풀어서 시간 초과가 난거였다. 구현 자체는 간단하다. 1. n명의 사람들 중 반을 조합으로 선택한다. 2. 조합으로 선택된 사람들의 능력치를 구한다 3. 차이값을 계산하여 최소값인 경우 저장한다. 코드 import java.io.BufferedReader; import j..

알고리즘 2023.07.17

자바 - 백준 17144 / 미세먼지 안녕!

https://www.acmicpc.net/problem/17144 17144번: 미세먼지 안녕! 미세먼지를 제거하기 위해 구사과는 공기청정기를 설치하려고 한다. 공기청정기의 성능을 테스트하기 위해 구사과는 집을 크기가 R×C인 격자판으로 나타냈고, 1×1 크기의 칸으로 나눴다. 구사 www.acmicpc.net 골드 4 구현 방법 구현 문제라서 문제부터 간단하게 요약했다. plate -> r * c 공기청정기 = 1번열(c) 설치, 두행(r) 차지한다 미세먼지 양 = A(r, c) a. 미세먼지 모든칸 동시에 확산, 네방향으로 인접한 방향에 공기청정기 있거나 칸없으면 확산 x 확산 양 : a(r,c) / 5 소수점 버리기 (r,c)에 남은 양 : a(r, c) - a(r,c)/5 * (확산 방향 개수)..

알고리즘 2023.07.04

자바 - 백준 16235 / 나무 재테크

https://www.acmicpc.net/problem/16235 16235번: 나무 재테크 부동산 투자로 억대의 돈을 번 상도는 최근 N×N 크기의 땅을 구매했다. 상도는 손쉬운 땅 관리를 위해 땅을 1×1 크기의 칸으로 나누어 놓았다. 각각의 칸은 (r, c)로 나타내며, r은 가장 위에서부터 www.acmicpc.net 골드3 구현 방법 구현 문제라서 일단 문제의 조건을 간단하게 정리 했다. 1. n * n = 땅 크기 2. 처음 모든 칸 양분 5 3. m = 나무 개수 4. 봄 -> 자신의 나이만큼 양분 먹음 -> 나이 +1 5. 한칸에 여러개 나무 가능 6. 나이 어린 나무부터 양분 먹음, 양분 부족하면 바로 죽음 7. 여름 -> 죽은 나무 양분으로 변함, 나무 나이 // 2 8. 가을 -> ..

알고리즘 2023.06.30

자바 - 프로그래머스 / 전화번호 목록

https://school.programmers.co.kr/learn/courses/30/lessons/42577 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr lv2 구현 방법 조건 - phone_book의 길이는 1 이상 1,000,000 이하입니다. - 각 전화번호의 길이는 1 이상 20 이하입니다. - 같은 전화번호가 중복해서 들어있지 않습니다. 효율성 테스트 실패 방법 1. phone_book을 문자열 길이 오름차순으로 정렬한다. 시간복잡도 - 평균 : O(nlog(n)) / 최악 : O(n^2) 2. phone_book 문자열 하나와 그 외 p..

알고리즘 2023.05.28

자바 - 프로그래머스 / [1차] 뉴스 클러스터링

https://school.programmers.co.kr/learn/courses/30/lessons/17677 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr lv 2 구현 방법 1. string 입력값을 모두 소문자로 바꾼다. 2. string 입력값을 두개씩 끊어서 Map형식으로 받는다. String = 두개씩 끊은 입력값, Integer = 두개씩 끊은 입력값의 개수 2-1. 두개씩 끊은 값중에서 알파벳을 제외한 문자나 숫자가 있을 경우 공백으로 만든다. 2-2. 2-1에서 string 길이를 비교해서 2보다 작으면 Map에 넣지 않는다. (순수 ..

알고리즘 2023.05.26

자바 - 프로그래머스 / 피보나치 수

https://school.programmers.co.kr/learn/courses/30/lessons/12945 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr LV 2 구현 방법 피보나치 보자마자 재귀(Top-down)로 후딱 구현했는데 런타임 에러가 났다. 문제 범위가 "n은 2 이상 100,000 이하인 자연수입니다." 여서, 재귀로 풀 경우 중복되는 계산이 많아져서 비효율적이다. 그래서 dp를 이용해서 반복(Bottm-up)으로 구현했다. 그런데도 오류가 떠서 찾아보니 자바 int 자료형의 경우, -2,147,483,648 ~ 2,147,483,6..

알고리즘 2023.05.03

자바 - 백준 20055 / 컨베이어 벨트 위의 로봇

https://www.acmicpc.net/problem/20055 20055번: 컨베이어 벨트 위의 로봇 길이가 N인 컨베이어 벨트가 있고, 길이가 2N인 벨트가 이 컨베이어 벨트를 위아래로 감싸며 돌고 있다. 벨트는 길이 1 간격으로 2N개의 칸으로 나뉘어져 있으며, 각 칸에는 아래 그림과 같이 1부 www.acmicpc.net 골드5 구현 방법 구현 문제라서 문제에 적힌대로 코드 작성하면 된다. 딱히 사용한 자료구조나 알고리즘도 없다. 2 ≤ N ≤ 100 1 ≤ K ≤ 2N 1 ≤ Ai ≤ 1,000 조건도 위와 같아서 O(n^2)도 충분히 가능하다. 주의할 점은 로봇 위치 이동에 따라 로봇 올리는 곳과 로봇 내리는 곳 신경써서 구현해야 한다. 코드 package boj; import java.i..

알고리즘 2023.04.13

자바 - 백준 12101 / 1, 2, 3 더하기 2

https://www.acmicpc.net/problem/12101 12101번: 1, 2, 3 더하기 2 n을 1, 2, 3의 합으로 나타내는 방법 중에서 사전 순으로 k번째에 오는 것을 출력한다. k번째 오는 식이 없는 경우에는 -1을 출력한다. www.acmicpc.net 실버1 구현 방법 n은 양수이며 11보다 작고, k는 2^31-1보다 작거나 같은 자연수라서 이중 포문 써도 된다. 1. n까지 가지는 총 갯수를 저장하는 배열 만들기 2. 2차원 dp를 만들어서 숫자별로 합을 나타낼 수 있는 경우들 배열에 저장하기 3. bottom-up 방식의 점화식을 이용해서 원하는 값까지 저장하기 4. 사전순으로 정렬하기 코드 import java.io.BufferedReader; import java.io..

알고리즘 2023.04.10