전체 글 159

[백준] 18352번: 특정 거리의 도시 찾기

문제 파악- 출발점 X에서 특정 거리 K가 걸리는 노드들을 체크하고 마지막에 출력해주기 -BFS 접근 방법-BFS사용해 최단 거리 카운트하기-출발점은 하나이고 단일로 연결 된 노드를 타고 가서 거리를 카운트-거리는 모두 1로 통일(별도의 가중치 없음 파악)-visited를 int[]로 변형 활용하여(토마토 문제처럼) 노드마다 '출발점에서 얼마나 걸렸는지' 적재해주기     코드 구현package org.server;import java.io.*;import java.util.*;public class Main { public static void main(String[] args) throws IOException{ BufferedReader br = new BufferedRea..

alorithm/Baekjoon 2025.03.26

JAVA 문법 모음집

배열 중복제거하기(+정렬위한 HashSet사용) 방법: 배열을 HashSet에 담고 다시 배열로 담기구현: HashSet set = Arrays.stream(nums).boxed().collect(Collections.toSet());int[] newArr = set.stream().mapToInt(Integer::intValue).toArray(); //HashSet을 배열에 다시 담기배열의 요소를 stream으로 돌기 위해 Arrays.stream(arr).boxed() 사용, + collect로 다른 자료형으로 모으기  리스트 중복 제거하기(+저장되는 순서 유지 위한 LinkedHashSet사용)방법: 리스트를 LinkedHashSet에 담고 다시 리스트로 담기구현:Set toSet = new Li..

alorithm 2025.03.22

[백준] 2468번: 안전 영역

문제 파악- 친구의 친구까지만 구하기 -완전 탐색 접근 방법-안전 영역이 '최대'가 되는 경우를 구해내기-단순 주어진 강수량 이하를 기준으로 dfs(완전탐색)하는 문제가 아님-모든 강수량의 case를 탐색해야 함    -탐색 범위는 지역 최대 높이까지(강수량 최대 case)   코드 구현package org.server;import java.io.*;import java.util.*;public class Main { static boolean[][] visited; static int[][] ground; static int N; public static void main(String[] args) throws IOException{ BufferedReader br =..

alorithm/Baekjoon 2025.03.19

[백준] 5567번: 결혼식

문제 파악- 친구의 친구까지만 구하기 -그래프 이론-그래프 탐색-너비 우선 탐색 접근 방법-특정 레벨까지만 탐색해야 하므로 완전탐색X BFS접근을 사용해야 한다.-'친구의 친구'까지라고 명시되어있기 때문에 lev2까지 탐색한다고 힌트를 얻을 수 있음  코드 구현package org.server;import java.io.*;import java.util.*;public class Main { static boolean[] visited; static int N; static Map> graph; static int cnt=0; public static void main(String[] args) throws IOException{ BufferedReader br =..

alorithm/Baekjoon 2025.03.18

putty ppk 파일을 openssh 개인키로 변환하기 (윈도우에서 EC2 접속 통로 만들기)

EC2서버에 언제든 들락날락할 수 있는 통로를 만들어주고 싶었다.ec2 키 페어 .ppk 받아놓고 이걸 ssh 개인키로 변환해서번거로운 puTTy접속 작업 대신 커맨드창으로 서버 왔다갔다 해보자. - Puttygen을 사용하여 PPK 파일 불러오기- OpenSSH 형식으로 개인 키 내보내기(Export OpenSSH-'(원하는이름)'파일로 저장) -> 개인키- 공개 키 생성(Public key for pasting into.. 아래 긴 ~ 문자열 그대로 긁어서 '(아까 한 이름)'.pub 확장명으로 파일 저장) -> 공개키 - echo "복사한 공개 키" >> ~/.ssh/authorized_keys  -- 접속 환경은 ~/.ssh- ssh -i '(개인키') 사용자명@원격서버ip   윈도우에서EC2 접..

Server/Linux 2024.12.08

SQLD 5일의 전사.. 결과는

지난 시험 때 하루 전 벼락치기하고 장렬히 떨어졌던 sqld이번에는 배움을 얻고 5일 전 공부 시작..!노랭이 사놓고 제대로 푼 기억이 없어서이번에는 그냥 유투브 이런 것 보지 않고노랭이만 파기로 했다. 5일 전 노랭이 펴고 빨간펜 쫙쫙 그어가며 공부 시작해서1회독을 겨우 끝냈다.(현재 부트캠프 수업을 평일 9to6로 들어서 주로 끝나고 저녁에 공부했으니순공 시간은 10시간 정도 되는 것 같다.)그리고 요약본pdf 다운받아 아이패드로 5회독 이상 돌린듯노랭이 풀고나니 요약본을 달달 외우는 느낌이 아니라이해가 되는 느낌이었다. 아무튼 전날 늦잠 이슈 및 공부 안하고 노는 이슈 차단 위해시험장 근처에 자취하는 언니에게 미리 사전에 양해 구하고전날까지 열공하다가 밤샘 후 시험보는 건 너무 리스크가 커서 잠을 ..

생활리뷰 2024.09.07

[백준] 5014번: 스타트링크

https://www.acmicpc.net/problem/5014 문제 파악- 첫째 줄에 F, S, G, U, D가 주어진다. (1 ≤ S, G ≤ F ≤ 1000000, 0 ≤ U, D ≤ 1000000) 건물은 1층부터 시작하고, 가장 높은 층은 F층이다. - 첫째 줄에 강호가 S층에서 G층으로 가기 위해 눌러야 하는 버튼의 수의 최솟값을 출력한다. 만약, 엘리베이터로 이동할 수 없을 때는 "use the stairs"를 출력한다.  -그래프 이론 -그래프 탐색 -너비 우선 탐색 접근 방법-최소시간을 구해 리턴해야 하므로 BFS접근을 사용-정수 배열을 담는 큐 자료형 사용-정수 배열에는 층x와 버튼을 누른 횟수가 담긴다.  코드 구현package com.baekjoon;public class p501..

alorithm/Baekjoon 2024.09.07

[백준] 1697번: 숨바꼭질

https://www.acmicpc.net/problem/1697   문제 파악- 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다.-그래프 이론 -그래프 탐색 -너비 우선 탐색 접근 방법-최소시간을 구해 리턴해야 하므로 BFS접근을 사용한다.-정수 배열을 담는 큐 자료형 사용-정수 배열에는 수빈이의 위치 x와 걸린 시간이 담긴다.  코드 구현package com.baekjoon;public class p1697_숨바꼭질 { public static int p1697_숨바꼭질() throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(..

alorithm/Baekjoon 2024.09.06

[LeetCode] 743. Network Delay Time

문제 파악-주어진 k부터 n까지 최소 거리를 구하는 문제-다익스트라 함수 구현하기-가중치 = 시간접근 방법-Edge, Entry 클래스로 구조체형태 만들기-우선순위 큐를 활용해 거리가 짧은 노드들부터 순회-큐에 들어간 원소를 전부 비워낼 때까지 while문 돌며 distance가 최소거리인지 체크-(+) 그와 연결 된 노드들과의 거리도 최소거리인지 체크-절대적인 최솟값 거리를 저장하는 distances 배열 통째로 리턴⇒ 왜? 특정 노드 n까지의 최소거리가 아니라, 모든 노드를 순회할 때의 최솟값이기 때문.(순서가 있는 그래프가 아니므로 n까지 != 최댓값임)-리턴받은 최솟값 모음 배열을 돌며 가장 그 중 가장 오래 걸린 시간을 찾는다.(max)코드 구현import java.util.*;class Sol..

[프로그래머스] 동전 교환

문제 파악-dp활용  제한 사항1 1 0 접근 방법-0~n까지 현재 금액 누적해가기(for문)-금액 도달 전까지 누적해가며 dp 수행, 수행하면서 대상 값을 업데이트해가며 돌려줌(amount-coin)-완전탐색으로도 구현이 가능하나 효율성에서 문제 발생!!-메모이제이션 활용) n번째 계단처럼, n번째 값까지의 최소값을 하나하나 메모해두고계산하지 않은 것만 dp수행, 이미 계산된 것은 배열 안에서 골라서 result값 갱신하기코드 구현import java.util.*;class Solution { public int solution(int[] coins, int amount) { int[] memory = new int[amount+1]; Arrays.fill(memory,I..