전체 글

아는 만큼 보인다.
문제 풀이📝 문자열을 처리하여 푸는 문제였다. 1. 문자열 상태의 시간을 int 형태의 분으로 변환하여 주차 요금을 계산하였따. 2. 차량의 주차 시간을 저장하는 Map을 정의하여 총 주차 시간을 저장하였다. 구현🛠️ import java.util.Map; import java.util.TreeMap; public class Solution_주차_요금_계산 { class Record { private int entrance; private int time; private boolean out; // 주차장 입장 public void enter(int enterTime) { this.entrance = enterTime; this.out = false; } // 주차장 퇴장 public void exit(..
문제 풀이📝 BFS를 이용하여 풀었다. 5개의 대기실을 순회하면서 해당 대기실의 응시자들이 거리두기를 준수하는지 확인한다. 응시자 기준 맨해튼 거리가 2를 넘는 칸들은 고려하지 않는다. 맨해튼 거리가 2 이하일 때 사람이 있고, 칸막이로 막혀있지 않은 경우라면 거리두기를 준수하지 못한 상태이다. 방문처리 응시자 기준 대각선 위치에 있는 칸은 두 번 방문할 수 있다! (초록색 참고) 나머지 칸들은 모두 한 번만 방문할 수 있도록 처리한다. 구현🛠️ import java.util.ArrayDeque; import java.util.Queue; public class Solution_거리두기_확인하기 { private char[][][] rooms; private int[] dx = {-1, 0, 1, 0};..
문제 풀이📝 완전 탐색(조합)을 이용한 풀이 1. 라이언이 득점할 수 있는 모든 점수들의 조합을 구한다. 2. 해당 조합이 유효한지 체크한다. 화살을 초과해서 사용하지 않는지? 라이언이 이기는 경우인지? 가장 큰 점수 차이인지? 기존 점수 차이와 같을 경우, 더 낮은 점수를 많이 맞추는지? 3. 만약 유효하다면 기존의 case를 해당 case로 갱신한다. 구현🛠️ class Solution { private final int MAX = 11; private int N; private int[] apeach; private boolean[] choice; private int maxGap; private int[] lion; public int[] solution(int n, int[] info) { th..
나의 풀이보다 더 신박하고 좋은 방법을 찾게 되어 정리하려고 한다. 문제 풀이📝 투 포인터를 사용한 풀이 첫번째 큐와 두번째 큐를 합친 하나의 배열을 생성한다. 합친 큐에서, 첫번쨰 큐의 시작지점을 left, 두번째 큐의 시작 지점을 right로 설정하여 구간합을 구한다. 두 큐의 값이 같아질 때의 값인 half를 정의한다. (half = (queue1Sum + queue2Sum) / 2) 첫번째 큐의 합이 half와 같을 때 두 큐의 합이 같아졌으므로 최소 이동 횟수를 반환한다. 첫번째 큐의 합이 half보다 클 때 left 포인터를 한 칸 오른쪽으로 옮긴다. 첫번째 큐의 합을 옮긴 후의 구간 합으로 갱신한다. 첫번째 큐의 합이 half보다 작을 때 right 포인터를 한 칸 오른쪽으로 옮긴다. 첫번째..
· 잡학다식
문제 인식 개발을 할 때면 cmd나 powershell을 사용해 애플리케이션을 실행하거나 파일을 조작하는 경우가 많다. Mac이나 Linux/Unix 환경에서는 chmod 400이라는 간단한 명령어를 통해 해당 파일에 권한을 부여할 수 있지만, Window는 그런게 없는 것 같다ㅜㅜ 나는 '폴더 우클릭 - 터미널에서 열기' 기능을 애용하는 편인데 일반 사용자 권한으로 터미널을 실행하기 때문에, cmd를 직접 관리자 권한으로 켜서 해당 디렉토리로 이동한 후 작업을 했었다. (불편...) 항상 cmd를 관리자 권한으로 실행할 수는 없는 걸까? 바로가기에 관리자 권한 부여하기 생각보다 해결책은 간단하다. 차근차근 따라오면 된다^-^ 1. cmd/powershell 바로가기가 있는 폴더 열기 2. '명령 프롬프..
@ModelAttribute 예시 코드) /** * Form으로부터 받아온 item을 저장한 후, item 정보를 보여주는 뷰 반환 */ @PostMapping("/add") public String addItem(@ModelAttribute("item") Item item, Model model) { itemRepository.save(item); model.addAttribute("item", item); // @ModelAttribute -> 자동으로 Model에 추가, 생략 가능 return "basic/item"; } @ModelAttribute 어노테이션은 HTTP 요청 파라미터들을 1:1로 하나의 객체에 바인딩할 때 사용한다. @RequestParam으로 바인딩하기에는 파라미터들이 너무 많을..
문제 읽기🤔 문제 올해 ACM-ICPC 대전 인터넷 예선에는 총 n개의 팀이 참가했다. 팀은 1번부터 n번까지 번호가 매겨져 있다. 놀랍게도 올해 참가하는 팀은 작년에 참가했던 팀과 동일하다. 올해는 인터넷 예선 본부에서는 최종 순위를 발표하지 않기로 했다. 그 대신에 작년에 비해서 상대적인 순위가 바뀐 팀의 목록만 발표하려고 한다. (작년에는 순위를 발표했다) 예를 들어, 작년에 팀 13이 팀 6 보다 순위가 높았는데, 올해 팀 6이 팀 13보다 순위가 높다면, (6, 13)을 발표할 것이다. 창영이는 이 정보만을 가지고 올해 최종 순위를 만들어보려고 한다. 작년 순위와 상대적인 순위가 바뀐 모든 팀의 목록이 주어졌을 때, 올해 순위를 만드는 프로그램을 작성하시오. 하지만, 본부에서 발표한 정보를 가지..
문제 읽기🤔 문제 선주는 자신이 운영하는 N개의 논에 물을 대려고 한다. 물을 대는 방법은 두 가지가 있는데 하나는 직접 논에 우물을 파는 것이고 다른 하나는 이미 물을 대고 있는 다른 논으로부터 물을 끌어오는 법이다. 각각의 논에 대해 우물을 파는 비용과 논들 사이에 물을 끌어오는 비용들이 주어졌을 때 최소의 비용으로 모든 논에 물을 대는 것이 문제이다. 입력 첫 줄에는 논의 수 N(1 ≤ N ≤ 300)이 주어진다. 다음 N개의 줄에는 i번째 논에 우물을 팔 때 드는 비용 Wi(1 ≤ Wi ≤ 100,000)가 순서대로 들어온다. 다음 N개의 줄에 대해서는 각 줄에 N개의 수가 들어오는데 이는 i번째 논과 j번째 논을 연결하는데 드는 비용 Pi,j(1 ≤ Pi,j ≤ 100,000, Pi,j = Pj..
소윤파크
쏘's 코드