전체 글 164

[프로그래머스] PCCP기출_2번 : 퍼즐 게임 챌린지

문제 파악- 구현, 탐색 접근 방법- While 무한 루프로 숙련도를 증가시키며 for루프를 통해 게임을 수행하고, 걸리는 시간을 계산한다.-limit 이전에 수행되는 최소값을 찾는다. 1차 풀이 코드import java.util.*;class Solution { public int solution(int[] diffs, int[] times, long limit) { int answer = 0; int level=0; while(true){ level++; long timeSum=0;//초기화 for(int j=0;jlevel){ long wrongCn..

[프로그래머스] 다리를 건너는 트럭

문제 파악- 큐 자료구조 활용 접근 방법-다리 길이를 한정해두고 0으로 채워둔다. 그리고 1초 지날 때마다 한 칸씩 이동한다고 생각하기.-다리를 이동하는 거리를 시간과 연계 시켜 생각하는 게 중요하다. 풀이 코드 import java.util.*;class Solution { public int solution(int bridge_length, int weight, int[] truck_weights) { Queue bridge = new ArrayDeque(); for(int i=0;i - 핵심) for문으로 truck_weights 배열을 돌며 체크했었는데, 이러면 트럭이 올라가지 못할 경우에도 루프가 돌아 다음 원소로 넘어가게 된다.while과 인덱스 수동 증가를 ..

[프로그래머스] 지게차와 크레인

문제 파악 & 접근 방법-BFS-4방이 뚫리거나 or 해당되는 알파벳 전부 -> 주어진 요청 형태(1자 or 2자) 에 따라 소거해간다1글자이면 모든 해당 컨테이너 제거2글자이면 공기와 맞닿은 컨테이너 제거 1차 코드 구현import java.util.*;class Solution { static int x; static int y; public int solution(String[] storage, String[] requests) { int answer = 0; x = storage.length; y = storage[0].length(); char[][] storages = new char[x][y]; for(int i..

[프로그래머스] 서버 증설 횟수

문제 파악 & 접근 방법-실제 컴퓨터가 프로세스를 관리할 때 사용하는 큐 자료구조를 이해하고 이를 바탕으로 풀기-우선순위 큐를 사용해 먼저 사용해야하는 자원(서버)을 소진한다. O(1)-24시간동안 접속하는 사용자 수(players)가 주어지면 -> 서버가 몇개 필요한지 체크 -> 지금 올라온 서버(size)와 비교, 차이 발생하면 필요한만큼(more) 증설하고, 만료 시간 배열로 함께 큐에 저장 *주의 사항 : /m (=몫n)당 서버 n개 필요. 소숫점은 버린다. (기존 서버가 포용 가능) 코드 구현import java.util.*;class Solution { public int solution(int[] players, int m, int k) { PriorityQueue pq ..

[백준] 2875번: 대회 or 인턴

문제 파악- "하드 제한" 문제- 3가지의 조건 도출 -> 모두 만족하는지 체크 필요 -수학-구현-사칙연산 접근 방법문제에서 알 수 있는 팀 결성의 조건은 다음과 같다.여자 2명 필요남자 1명 필요총 팀원 3명 필요이 세 조건은 동시에 충족되어야 하는 최소한의 조건들이고,하나라도 부족하면 팀을 만들 수 없다. N / 2 → 여학생 조건M → 남학생 조건(N + M - K) / 3 → 전체 인원 조건이 중 하나라도 부족하면 팀을 더 못 만듬그래서 min()으로 그 중 가장 작은 제한을 따르는 것.즉 "누가 제일 약한 고리인지" 파악하는 과정! 약한 고리가 팀 수의 최대치를 결정한다. 코드 구현package org.server;import java.io.*;import java.lang.reflect...

alorithm/Baekjoon 2025.04.17

[백준] 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