SY 개발일지
article thumbnail
[백준 17090] 미로 탈출하기 - Java 문제풀이
Java/문제풀이 2024. 5. 3. 10:53

문제 링크: https://www.acmicpc.net/problem/17090 문제크기가 N×M인 미로가 있고, 미로는 크기가 1×1인 칸으로 나누어져 있다. 미로의 각 칸에는 문자가 하나 적혀있는데, 적혀있는 문자에 따라서 다른 칸으로 이동할 수 있다.어떤 칸(r, c)에 적힌 문자가U인 경우에는 (r-1, c)로 이동해야 한다.R인 경우에는 (r, c+1)로 이동해야 한다.D인 경우에는 (r+1, c)로 이동해야 한다.L인 경우에는 (r, c-1)로 이동해야 한다.미로에서 탈출 가능한 칸의 수를 계산해보자. 탈출 가능한 칸이란, 그 칸에서 이동을 시작해서 칸에 적힌대로 이동했을 때, 미로의 경계 밖으로 이동하게 되는 칸을 의미한다. 입력첫째 줄에 미로의 크기 N, M(3 ≤ N, M ≤ 500)이 ..

article thumbnail
[Java] Synchronized 동기화란
Java/자바와 Spring 2024. 5. 2. 18:18

스레드 동기화란?하나의 프로세스는 스레드와 데이터, 그리고 자원으로 구성됩니다. 하나의 프로세스내의 스레드들은 각자의 PC와 register를 지니고 있지만, 자원과 데이터는 공유하여 사용합니다.싱글스레드 환경에서는 공유 데이터에 대해 하나의 스레드만 접근하여 사용하므로 동기화에 대해 문제가 발생하지 않습니다. 그러나 멀티스레드 환경에서 둘 이상의 스레드가 공유 데이터에 동시에 접근하게 되면 문제가 발생할 수도 있습니다.이러한 문제를 막기 위해 스레드 동기화를 해야 합니다.동기화를 하지 않는다면 ?동기화를 하지 않는 경우를 먼저 그림을 통해 생각해보도록 하겠습니다.다음은 예금 인출 방법입니다.  가장 이상적인 예시로는 여러번의 요청이 와도 차례대로 처리가 되어 잔액이 마이너스가 되거나, 중간에 요청이 겹..

article thumbnail
[백준 20952] 게임 개발자 승희 - Java 문제풀이
Java/문제풀이 2024. 5. 2. 17:09

문제 링크: https://www.acmicpc.net/problem/20952 문제승희는 최근 369 게임에 푹 빠졌다. 369 게임을 하던 승희는 놀라 자빠질 수밖에 없었다. 369 게임을 잘하는 자기 자신이 너무 대견하였기 때문이다. 369 게임이 식상해진 승희는 369 게임을 변형한 71421 게임을 개발하였다. 369 게임에서는 3, 6, 9가 들어가는 수에 손뼉을 치지만, 71421 게임에서는 7의 배수에 손뼉을 친다. 승희는 71421 게임을 널리 퍼트리기로 결심하였다.71421 게임은 최근 대학생들 사이에서 큰 인기를 끌고 있다. 369 게임에 이어 71421 게임도 식상해진 승희는 수열을 이용한 새로운 게임을 개발하였다.승희의 수열 게임은 혼자서 즐길 수 있는 재미난 게임이다. 시작하기에..

article thumbnail
[백준 22953] 도도의 음식 준비 - Java 문제풀이
Java/문제풀이 2024. 4. 30. 13:22

문제 링크: https://www.acmicpc.net/problem/22953 문제도도는 주방장이다. 총 K개의 요리가 준비되는 최소 시간을 구해야 한다.각각의 요리사는 자신만의 음식 조리 시간이 있다. 음식 조리 시간은 음식 하나를 만들 때 걸리는 시간이다.도도는 요리사에게 격려를 해줄 수 있다. 격려받은 요리사는 영구적으로 음식 조리 시간이 1초 감소한다.도도는 한 요리사에게 여러 번 격려할 수 있고, 요리사의 음식 조리 시간을 1초 미만으로 줄일 수는 없다.도도를 위해 요리에 걸리는 최소 시간을 출력하는 프로그램을 만들어 보자. 입력첫째 줄에 요리사의 수 N (1 ≤ N ≤ 10), 만들어야 할 음식의 개수 K (1 ≤ K ≤ 1000000), 격려해줄 수 있는 횟수 C (1 ≤ C ≤ 5)가 주..

article thumbnail
[Java] 리플렉션이란?
Java/자바와 Spring 2024. 4. 29. 17:25

리플렉션이란리플렉션이란 구체적인 클래스 타입을 알지 못해도 그 클래스의 메서드, 타입, 변수들에 접근할 수 있도록 해주는 자바 API입니다.컴파일 시간이 아닌 런타임 시간에 동적으로 특정 클래스의 정보를 추출할 수 있는 프로그래밍 기법이라고 할 수 있습니다. 언제 사용동적으로 클래스를 사용해야 할 때 사용합니다.다시말해, 작성 시점에는 어떠한 클래스를 사용해야 할지 모르지만, 런타임 시점에서 가져와 실행해야하는 경우에 사용됩니다.프레임워크나 IDE에서 이러한 동적 바인딩을 이용한 기능을 제공합니다.리플렉션 사용 예시Intellij 의 자동 완성 기능스프링 어노테이션스프링 어노테이션에서 리플렉션을 적용하는 방법은 추후 추가할 예정입니다. 리플렉션을 사용하여 가져올 수 있는 정보리플렉션을 통해 가져올 수 있..

article thumbnail
[백준 26009] 험난한 등굣길 - Java 문제풀이
Java/문제풀이 2024. 4. 29. 14:32

문제 링크: https://www.acmicpc.net/problem/26009 문제통학러 재헌이는 1교시 수업을 듣기 위해 아침 일찍 학교에 가려고 한다. 재헌이가 사는 지역은 크기가 N x M 인 격자로 나타낼 수 있는데, i행 j열에 해당하는 칸을 (i, j) 로 나타낼 때 재헌이는 현재 (1, 1)에, 학교는 (N, M)에 위치해 있다. 재헌이는 상하좌우로 한 칸씩 이동할 수 있고 지역 바깥으로 나갈 수는 없다.등굣길은 순탄치만은 않은데, 이 지역에는 K개의 정체 구역이 있다. 𝑖$i$번째 정체 구역은 세 정수 Ri, Ci, Di로 표현되며, 이는 (Ri, Ci)로부터 거리가 Di 이하인 칸들에는 극심한 교통 정체가 일어나고 있음을 의미한다. 두 칸 (R1, C1), (R2, C2) 사이의 거리..

article thumbnail
[백준 9370] 미확인 도착지 - Java 문제풀이
Java/문제풀이 2024. 4. 28. 17:48

문제 링크: https://www.acmicpc.net/problem/9370 문제(취익)B100 요원, 요란한 옷차림을 한 서커스 예술가 한 쌍이 한 도시의 거리들을 이동하고 있다. 너의 임무는 그들이 어디로 가고 있는지 알아내는 것이다. 우리가 알아낸 것은 그들이 s지점에서 출발했다는 것, 그리고 목적지 후보들 중 하나가 그들의 목적지라는 것이다. 그들이 급한 상황이기 때문에 목적지까지 우회하지 않고 최단거리로 갈 것이라 확신한다. 이상이다. (취익)어휴! (요란한 옷차림을 했을지도 모를) 듀오가 어디에도 보이지 않는다. 다행히도 당신은 후각이 개만큼 뛰어나다. 이 후각으로 그들이 g와 h 교차로 사이에 있는 도로를 지나갔다는 것을 알아냈다.이 듀오는 대체 어디로 가고 있는 것일까?예제 입력의 두 번..

article thumbnail
[백준 14621] 나만 안되는 연애 - Java 문제풀이
Java/문제풀이 2024. 4. 26. 19:39

문제 링크: https://www.acmicpc.net/problem/14621 14621번: 나만 안되는 연애입력의 첫째 줄에 학교의 수 N와 학교를 연결하는 도로의 개수 M이 주어진다. (2 ≤ N ≤ 1,000) (1 ≤ M ≤ 10,000) 둘째 줄에 각 학교가 남초 대학교라면 M, 여초 대학교라면 W이 주어진다. 다음 M개의www.acmicpc.net 문제깽미는 24살 모태솔로이다. 깽미는 대마법사가 될 순 없다며 자신의 프로그래밍 능력을 이용하여 미팅 어플리케이션을 만들기로 결심했다. 미팅 앱은 대학생을 타겟으로 만들어졌으며 대학교간의 도로 데이터를 수집하여 만들었다.이 앱은 사용자들을 위해 사심 경로를 제공한다. 이 경로는 3가지 특징을 가지고 있다.사심 경로는 사용자들의 사심을 만족시키기 ..

article thumbnail
[백준 3075] Astromeeting - Java 문제풀이
Java/문제풀이 2024. 4. 25. 11:59

문제 링크: https://www.acmicpc.net/problem/3075 3075번: Astromeeting때는 아주 먼 미래, 지구인은 태양계를 넘어 은하계를 넘나들 수 있는 시대를 맞이하게 되었다. ㈜유료도로당이라는 회사는 은하간에 초광속터널을 제공하여 은하간에 편리하고 빠르게 이동할www.acmicpc.net 문제때는 아주 먼 미래, 지구인은 태양계를 넘어 은하계를 넘나들 수 있는 시대를 맞이하게 되었다.㈜유료도로당이라는 회사는 은하간에 초광속터널을 제공하여 은하간에 편리하고 빠르게 이동할 수 있게 하였다. 이때 다른 은하로 여행하기 위해 ㈜유료도로당에 제공해야 할 경비는 은하에서 다른 은하로 가는 총 경로의 길이 d의 제곱이다. 즉, 어느 은하에서 다른 은하로 가는 총 경로의 길이가 1이라면..