자바 27

모각코 5회차(240201)

[백준/BOJ] 1253번 좋다 (자바/Java) https://www.acmicpc.net/problem/1253 1253번: 좋다 첫째 줄에는 수의 개수 N(1 ≤ N ≤ 2,000), 두 번째 줄에는 i번째 수를 나타내는 Ai가 N개 주어진다. (|Ai| ≤ 1,000,000,000, Ai는 정수) www.acmicpc.net 1. 문제 N개의 수 중에서 어떤 수가 다른 수 두 개의 합으로 나타낼 수 있다면 그 수를 “좋다(GOOD)”고 한다. N개의 수가 주어지면 그 중에서 좋은 수의 개수는 몇 개인지 출력하라. 수의 위치가 다르면 값이 같아도 다른 수이다. 입력 첫째 줄에는 수의 개수 N(1 ≤ N ≤ 2,000), 두 번째 줄에는 i번째 수를 나타내는 Ai가 N개 주어진다. (|Ai| ≤ 1,..

모각코 2024.02.17

[백준/BOJ] 16933번 벽 부수고 이동하기 3 (자바/Java)

1. 문제 N×M의 행렬로 표현되는 맵이 있다. 맵에서 0은 이동할 수 있는 곳을 나타내고, 1은 이동할 수 없는 벽이 있는 곳을 나타낸다. 당신은 (1, 1)에서 (N, M)의 위치까지 이동하려 하는데, 이때 최단 경로로 이동하려 한다. 최단경로는 맵에서 가장 적은 개수의 칸을 지나는 경로를 말하는데, 이때 시작하는 칸과 끝나는 칸도 포함해서 센다. 이동하지 않고 같은 칸에 머물러있는 경우도 가능하다. 이 경우도 방문한 칸의 개수가 하나 늘어나는 것으로 생각해야 한다. 이번 문제에서는 낮과 밤이 번갈아가면서 등장한다. 가장 처음에 이동할 때는 낮이고, 한 번 이동할 때마다 낮과 밤이 바뀌게 된다. 이동하지 않고 같은 칸에 머무르는 경우에도 낮과 밤이 바뀌게 된다. 만약에 이동하는 도중에 벽을 부수고 이..

BOJ/BFS DFS 2023.08.24

@Transactional의 선언 위치

일전에 JPA에서 사용하는 어노테이션을 다루는 글에서 소개한 적이 있는 @Transactional 어노테이션에 대해서 다루다가 궁금한 점이 생겼었고, 그 의문점을 해결하여 기록합니다. 우선 그 전에, @Transactional이 무엇인지 알아보자. @Transactional은 기본적으로 선언된 메서드 내에서, 오류가 발생했을 경우 진행했던 변경 기록들을 DB에 커밋하지 않고 롤백하는 기능을 한다. 그래서 우리는 어떤 메서드를 동작시킬 때, DB에서 read를 제외한 CUD를 수행하고자 한다면, 필수적으로 이 어노테이션을 사용해야했다. Q. 왜 Repository에 선언하지 않고, Repository를 사용하는 메서드에서 @Transactional을 사용하나요? 보통 많은 서비스에서 하나의 트랜잭션(데이터..

JPA 2023.08.17

[백준/BOJ] 15664번 N과 M (10) (자바/Java)

https://www.acmicpc.net/problem/15664 15664번: N과 M (10) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net 1. 문제 N개의 자연수와 자연수 M이 주어졌을 때, 아래 조건을 만족하는 길이가 M인 수열을 모두 구하는 프로그램을 작성하시오. N개의 자연수 중에서 M개를 고른 수열 고른 수열은 비내림차순이어야 한다. 길이가 K인 수열 A가 A1 ≤ A2 ≤ ... ≤ AK-1 ≤ AK를 만족하면, 비내림차순이라고 한다. 입력 첫째 줄에 N과 M이 주어진다. (1 ≤ M ≤ N ≤ 8) 둘째 줄에 N개의 ..

BOJ/BackTracking 2023.08.17

모각코 6차(230810)

https://www.acmicpc.net/problem/1600 1600번: 말이 되고픈 원숭이 첫째 줄에 정수 K가 주어진다. 둘째 줄에 격자판의 가로길이 W, 세로길이 H가 주어진다. 그 다음 H줄에 걸쳐 W개의 숫자가 주어지는데, 0은 아무것도 없는 평지, 1은 장애물을 뜻한다. 장애물이 있 www.acmicpc.net 1. 문제 동물원에서 막 탈출한 원숭이 한 마리가 세상구경을 하고 있다. 그 녀석은 말(Horse)이 되기를 간절히 원했다. 그래서 그는 말의 움직임을 유심히 살펴보고 그대로 따라 하기로 하였다. 말은 말이다. 말은 격자판에서 체스의 나이트와 같은 이동방식을 가진다. 다음 그림에 말의 이동방법이 나타나있다. x표시한 곳으로 말이 갈 수 있다는 뜻이다. 참고로 말은 장애물을 뛰어넘을..

모각코 2023.08.12

[백준/BOJ] 1600번 말이 되고픈 원숭이 (자바/Java)

https://www.acmicpc.net/problem/1600 1600번: 말이 되고픈 원숭이 첫째 줄에 정수 K가 주어진다. 둘째 줄에 격자판의 가로길이 W, 세로길이 H가 주어진다. 그 다음 H줄에 걸쳐 W개의 숫자가 주어지는데, 0은 아무것도 없는 평지, 1은 장애물을 뜻한다. 장애물이 있 www.acmicpc.net 1. 문제 동물원에서 막 탈출한 원숭이 한 마리가 세상구경을 하고 있다. 그 녀석은 말(Horse)이 되기를 간절히 원했다. 그래서 그는 말의 움직임을 유심히 살펴보고 그대로 따라 하기로 하였다. 말은 말이다. 말은 격자판에서 체스의 나이트와 같은 이동방식을 가진다. 다음 그림에 말의 이동방법이 나타나있다. x표시한 곳으로 말이 갈 수 있다는 뜻이다. 참고로 말은 장애물을 뛰어넘을..

BOJ/BFS DFS 2023.08.12

DTO, DAO란? (DAO와 Repository의 차이)

오늘은 JPA를 공부하다가 나온(사실 JPA와 관련 없는 내용이지만) DTO와 DAO에 대해서 알아보고, DAO와 Repository는 어떤 차이점이 있는지 알아보겠습니다. 1. DTO(Data Transfer Object) 그대로 직역하면, 데이터를 운송하는 객체입니다. 보통 웹과 서버에서 데이터를 주고받을 때 사용되는 객체라고 이해해도 무방합니다.(혹은 데이터를 전송할 때 사용하는 객체.) 특이하게 이 객체는 메서드가 존재하지 않습니다. 단순히 필드만을 가지고 있고, 이 필드에 정보가 담겨져서 운송되는 방식이라고 생각하면 좋습니다. DTO를 이용할 때는 아래와 같은 규칙을 이용하여 작성합니다. 필드는 모두 private으로 선언합니다. Getter와 Setter를 열어둡니다. 아직 더 심화해서 사용해..

JPA 2023.08.10

[백준/BOJ] 2206번 벽 부수고 이동하기 (자바/Java)

https://www.acmicpc.net/problem/2206 2206번: 벽 부수고 이동하기 N×M의 행렬로 표현되는 맵이 있다. 맵에서 0은 이동할 수 있는 곳을 나타내고, 1은 이동할 수 없는 벽이 있는 곳을 나타낸다. 당신은 (1, 1)에서 (N, M)의 위치까지 이동하려 하는데, 이때 최단 경로 www.acmicpc.net 1. 문제 N×M의 행렬로 표현되는 맵이 있다. 맵에서 0은 이동할 수 있는 곳을 나타내고, 1은 이동할 수 없는 벽이 있는 곳을 나타낸다. 당신은 (1, 1)에서 (N, M)의 위치까지 이동하려 하는데, 이때 최단 경로로 이동하려 한다. 최단경로는 맵에서 가장 적은 개수의 칸을 지나는 경로를 말하는데, 이때 시작하는 칸과 끝나는 칸도 포함해서 센다. 만약에 이동하는 도중..

BOJ/BFS DFS 2023.08.06

JPA에서 Enum 타입 사용하기

오늘은 JPA 실습을 하던 중, Enum 타입을 사용한 것에 대해서 배운 내용을 토대로 정리해보겠습니다! 1. Enum이란? 간단하게 Enum에 대해서 짚고 넘어가겠습니다. Enum은 열거형이라고도 불리며, Enum 내에 선언된 값은 선언된 순서대로 순서를 갖습니다. 아래와 같이 사용할 수 있습니다. public enum OrderStatus { ORDER, CANCEL } 이렇게 되면, ORDER는 0에 매핑되고, CANCEL은 1에 매핑됩니다. 따라서 순서 또한 갖습니다. 추가적으로, 코드에서 봤다시피 Enum은 보통 대문자로 표기해줍니다. 관례니 따라줍시다. 2. JPA에서 Enum을 사용하는 이유 그렇다면 우리는 JPA에서 Enum을 왜 사용할까요?? 우리는 아래와 같은 표를 보면 바로 알 수 있..

JPA 2023.08.04

[Java/자바] No tests found for given includes:

문제 JPA에 대한 실습을 진행하던 도중, 테스트 코드를 실행하는 부분에서 위와 같은 에러가 터졌다. No tests found for given includes: 해결 인텔리제이에서 Preference 혹은 settings에 들어가서 검색창에 'Gradle'을 검색한다. 아마 이런 식으로 세팅이 되어있을 것인데, 여기서 Building and run using 과 Run tests using을 IntelliJ로 바꿔주자. 이 오류가 해결될 뿐더러, 실행 속도도 빨라진다.

Error Record 2023.08.04