[프로그래머스/Level2] 다리를 지나는 트럭 - JAVA[자바]
·
PS/프로그래머스
난이도 : Level 2유형 : 큐 / 구현 / 시뮬레이션구현 시간 : 30분링크 : https://school.programmers.co.kr/learn/courses/30/lessons/42583 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr   문제 풀이우선 해당 문제는 문제에 대한 설명이 부족하다.예제를 보면 추측이 가능한데 아래 2가지 조건을 추가해야 한다.트럭은 1초에 1씩 전진한다.트럭은 1초에 1대씩 다리에 올라갈 수 있다. 1. Queue 자료구조를 사용해서 다리 위 트럭 객체를 관리2. currentWeight, idx, time 변수를 통해 현재 다리 위 무게, 시간, 대기 트럭의 ..
[BOJ/Gold1] 1700번 멀티탭 스케줄링 - JAVA[자바]
·
PS/백준
난이도 : 골드 1유형 : 그리디 / 구현링크 : https://www.acmicpc.net/problem/1700구현 시간 : 1시간     문제 풀이 이 문제는 그리디 알고리즘 유형으로, 멀티탭에 꽂힌 전기용품 중 어떤 것을 제거해야 하는지 결정하는 문제입니다. 멀티탭의 상태를 관리하기 위해 삭제 및 삽입이 용이한 List 자료구조를 사용하여 구현하였습니다.현재 멀티탭이 비어있거나 빈 구멍이 있는 경우새로운 전기용품을 그대로 꽂습니다.새로운 전기용품이 이미 멀티탭에 꽂혀 있는 경우추가적인 작업 없이 그대로 넘어갑니다.멀티탭이 꽉 찬 상태에서 새로운 전기용품이 등장할 경우 (🔥핵심)1. 이후 사용되지 않는 전기용품이 있다면해당 전기용품을 제거합니다.2. 모든 전기용품이 이후에도 사용된다면가장 마지막에..
[프로그래머스/Level3] 블록 이동하기 - JAVA[자바]
·
PS/프로그래머스
난이도 : Level 3유형 : BFS / 구현구현 시간 : 1시간링크 : https://school.programmers.co.kr/learn/courses/30/lessons/60063 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr   문제 설명로봇개발자 "무지"는 한 달 앞으로 다가온 "카카오배 로봇경진대회"에 출품할 로봇을 준비하고 있습니다. 준비 중인 로봇은 2 x 1 크기의 로봇으로 "무지"는 "0"과 "1"로 이루어진 N x N 크기의 지도에서 2 x 1 크기인 로봇을 움직여 (N, N) 위치까지 이동 할 수 있도록 프로그래밍을 하려고 합니다. 로봇이 이동하는 지도는 가장 왼쪽, 상단의 좌..
[BOJ/Gold5] 15686번 치킨 배달 - JAVA[자바]
·
PS/백준
난이도 : 골드 5유형 : 조합 / 구현 / 백트래킹링크 : https://www.acmicpc.net/problem/15686구현 시간 : 30분       문제풀이위 문제의 핵심은 M개의 치킨집의 조합에 따라 최소 치킨 거리는 달라진다. 이 말이 무슨 뜻이냐면 항상 작은 치킨 거리의 합을 가지는 경우를 선택하면 안되므로 그리디 알고리즘은 사용할 수 없다. 예를 들어 6개의 치킨집 중 하나의 치킨집을 폐업시킬 때는 6개의 치킨집을 순회하며 하나씩 치킨집을 삭제해보고 최소값을 찾으면 되지만, 이 후 5개의 치킨집 중 하나의 치킨집을 다시 폐업시킬 때는 이전의 선택에 영향을 받을 수 있다는 의미이다.  따라서 현 상황에서 가장 좋은 선택을 하는 그리디 알고리즘은 사용하지 못하고, N개의 치킨집중 M개의 치..
[프로그래머스/Level3] 기둥과 보 설치 - JAVA[자바]
·
PS/프로그래머스
난이도 : Level 3유형 :구현 / 시뮬레이션구현 시간 : 2시간 (못품)링크 : https://school.programmers.co.kr/learn/courses/30/lessons/60061 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr       문제풀이위 문제는 많은 조건을 생각해야하는 빡구현 문제다. 주어진 좌표에 기둥과 보를 설치하는 구현은 정말 쉽지만, 기둥과 보를 삭제할 때 고려해야할 경우의 수는 매우 많다. 해당 경우의 수에 대해서 설명해보겠다. 나는 처음 구현할 때, 설치, 삭제 모두 전부 경우의 수를 고려해서 코드를 구현했는데 복잡한만큼 실수가 많아서 실패했다.  포기 후 다른..
[프로그래머스/Level3] 자물쇠와 열쇠 - JAVA[자바]
·
PS/프로그래머스
난이도 : Level 3유형 : 구현 / 시뮬레이션구현 시간 : 1시간링크: https://school.programmers.co.kr/learn/courses/30/lessons/60059 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr       문제풀이위 문제는 2차원 배열에 대한 높은 이해도가 필요하다. 제한사항을 자세히 보면, Key와 Lock의 크기가 3에서 최대 20으로 작은 것을 보니 완전탐색을 이용해서 풀 수 있다. 나는 (Lock 배열 길이 + Key 배열의 길이 * 2)의 크기의 2차원 배열을 새로 선언하여, 정사각형의 중앙에 Lock 배열을 삽입하고, 모든 경우를 전부 탐색하도록 구..
[프로그래머스/Level2] 문자열 압축 - JAVA[자바]
·
PS/프로그래머스
난이도 : Level 2유형 : 문자열 / 구현구현 시간 : 1시간링크: https://school.programmers.co.kr/learn/courses/30/lessons/60057 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr        문제풀이주어진 문자열을 1 ~ 문자열의 절반 길이까지 잘라가며 압축된 문자열의 길이를 비교한다.문자열을 자를 땐, 잘라진 앞부분(target) 을 설정하고 그 뒤로 남은 문자열을 자르며 비교한다.만약 target 과 다음으로 자른 문자열(compare)이 같다면 cnt 를 1 증가시키고, 다음 문자열로 넘어간다.target 과 compare 이 같지 않은 경우..
[BOJ/Gold4] 3190번 뱀 - JAVA[자바]
·
PS/백준
난이도 : 골드 4유형 : 구현 / 시뮬레이션 / 큐링크 : https://www.acmicpc.net/problem/3190구현 시간 : 1시간   문제풀이앞서 풀었던 시뮬레이션 / 구현 문제인 로봇 청소기보다 구현하는데 오랜 시간이 걸린 것 같다. 뱀의 길이는 조건에 따라 늘어나고, 늘어나는 뱀의 몸을 저장할 자료구조를 생각하는게 특히 고민할 부분이였던 것 같다. [BOJ] 14503번 로봇 청소기 - JAVA[자바]난이도 : 골드 5유형 : 구현 / 시뮬레이션링크 : https://www.acmicpc.net/problem/14503      문제풀이로봇 청소기의 규칙대로 알고리즘을 차례대로 구현했다.구현에  대한 고민은 크게 어렵지 않았다tenaciously.tistory.com 보드(룸)의 크기..
[BOJ/Gold5] 14503번 로봇 청소기 - JAVA[자바]
·
PS/백준
난이도 : 골드 5유형 : 구현 / 시뮬레이션링크 : https://www.acmicpc.net/problem/14503      문제풀이로봇 청소기의 규칙대로 알고리즘을 차례대로 구현했다.구현에  대한 고민은 크게 어렵지 않았다. 로봇 청소기의 방향은 Map 자료구조를 사용해서 저장했다.   1차 시도 - 통과import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.HashMap;import java.util.Map;public class Main { public static void main(String[] args) throws IOException { ..
[BOJ/Silver3] 1966번 프린터 큐 - JAVA[자바]
·
PS/백준
난이도 : 실버 3유형 : 구현 / 시뮬레이션링크 : https://www.acmicpc.net/problem/1966      문제풀이문서 출력 인덱스, 우선순위를 저장할 PrintJob 클래스 구현우선순위 비교 (현재 PrintJob 보다 높은 우선순위가 있는지 확인)2번에서 현재 PrintJob 보다 높은 우선순위가 있다면현재 문서를 다시 큐의 맨 뒤로 삽입현재 PrintJob 의 우선순위가 제일 높다면출력 순서 +1출력된 문서의 idx 가 M이라면 반복문 탈출 후 출력   1차 시도 - 통과import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.LinkedList..