728x90 Algorithm - Java/Programmers7 [Programmers - Lv. 2] 두 큐 합 같게 만들기 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr전형적인 투포인터를 사용해야 하는 문제.최단 횟수라서 BFS를 떠올릴 수도 있지만조건만 보더라도 무조건 터질 거라는 예상이 온다.문제 특성 상 큐 두개를 사용하기에두 배열을 합쳐 하나의 원 배열이라고 생각하면 편하다.[문제 설명]길이가 같은 두 개의 큐가 주어집니다. 하나의 큐를 골라 원소를 추출(pop)하고, 추출된 원소를 다른 큐에 집어넣는(insert) 작업을 통해 각 큐의 원소 합이 같도록 만들려고 합니다. 이때 필요한 작업의 최소 횟수를 구하고자 합니다. 한 번의 pop과 한 번의 insert를 합쳐서 작업을 1회 수행한 것으로 간주합니다.큐는 먼저 집어넣은.. 2025. 6. 14. [Programmers - Lv. 3] 디스크 컨트롤러 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.krSJF 스케줄링에 대한 우선순위 큐 문제정렬 시 같은 값을 가진 요소는먼저 넣은 순으로 우선도를 가진다는 점이 핵심이었다.큐 두개로 구현했다가 이후 다른 사람 풀이에서한 분의 풀이에 감명받아서 나도 그렇게 했다. [문제 설명]하드디스크는 한 번에 하나의 작업만 수행할 수 있습니다. 디스크 컨트롤러를 구현하는 방법은 여러 가지가 있습니다. 이 문제에서는 우선순위 디스크 컨트롤러라는 가상의 장치를 이용한다고 가정합니다. 우선순위 디스크 컨트롤러는 다음과 같이 동작합니다.어떤 작업 요청이 들어왔을 때 작업의 번호, 작업의 요청 시각, 작업의 소요 시간을 저장해 두.. 2025. 2. 26. [Programmers - Lv. 3] 길 찾기 게임 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr트리를 공부하면서 푼 문제문제 자체가 정렬과 이진트리 구현을 동시에 내는 문제라생각할 부분이 많았다.구현에 있어서트리를 따로 만들지 않고 그냥 바로 Node클래스에insert를 넣어서 해결. [문제 설명]전무로 승진한 라이언은 기분이 너무 좋아 프렌즈를 이끌고 특별 휴가를 가기로 했다.내친김에 여행 계획까지 구상하던 라이언은 재미있는 게임을 생각해냈고 역시 전무로 승진할만한 인재라고 스스로에게 감탄했다.라이언이 구상한(그리고 아마도 라이언만 즐거울만한) 게임은, 카카오 프렌즈를 두 팀으로 나누고, 각 팀이 같은 곳을 다른 순서로 방문하도록 해서 먼저 순회를 .. 2025. 2. 26. [Programmers - Lv. 3] 다단계 칫솔 판매 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr간만에 돌아왔습니다... ㅎㅎ졸업이랑 시험준비랑 이것저것한다고 바빴다.코테를 손을 대긴했는데 올릴 정도인 문제가 없거나어려운 건 내가 못풀고 있어서 올리지 못했다.트리와 그래프 탐색이 특히 약해서 입문하다 발견한 문제.풀이는 크게 어려운게 없었는데재귀함수 오버헤드 감소에 대해 알게되어 글을 씁니다.[문제 설명]너무 길어서 일부 발췌.민호는 다단계 조직을 이용하여 칫솔을 판매하고 있습니다. 판매원이 칫솔을 판매하면 그 이익이 피라미드 조직을 타고 조금씩 분배되는 형태의 판매망입니다. 어느정도 판매가 이루어진 후, 조직을 운영하던 민호는 조직 내 누가 얼마만큼의.. 2025. 2. 25. [Programmers - Lv. 3] 단어 변환 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr간단하게 풀 수 있는 BFS!난이도 상 안올려도 될 것 같지만Pair 클래스도 쓰고 나름 Lv.3이니까 올림한번 BFS와 DFS에 익숙해지면 관련 문제는 다 할 만한 것 같다. [문제 설명]두 개의 단어 begin, target과 단어의 집합 words가 있습니다. 아래와 같은 규칙을 이용하여 begin에서 target으로 변환하는 가장 짧은 변환 과정을 찾으려고 합니다.1. 한 번에 한 개의 알파벳만 바꿀 수 있습니다.2. words에 있는 단어로만 변환할 수 있습니다.예를 들어 begin이 "hit", target가 "cog", words가 ["hot",.. 2025. 2. 18. [Programmers - Lv. 3] 등굣길 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.krDP 문제. 대놓고 dp긴한데 BFS로는 왜 안되지 하고 BFS로 구현해보고 DP로 했다.당연히 BFS는 시간초과남..최단 경로 개수를 1,000,000,007로 나누라길래그렇게 커질 일이 있나?했는데 진짜 이게 문제였음[문제 설명]계속되는 폭우로 일부 지역이 물에 잠겼습니다. 물에 잠기지 않은 지역을 통해 학교를 가려고 합니다. 집에서 학교까지 가는 길은 m x n 크기의 격자모양으로 나타낼 수 있습니다.아래 그림은 m = 4, n = 3 인 경우입니다.가장 왼쪽 위, 즉 집이 있는 곳의 좌표는 (1, 1)로 나타내고 가장 오른쪽 아래, 즉 학교가 있는 곳.. 2025. 2. 18. [Programmers - Lv. 3] 야근 지수 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr일주일 만에 쓰는 글. 소프티어에서 프로그래머스로 옮겨왔다. 각각 장단점이 있지만 프로그래머스는 역시 입출력 면에서 편하다.이번 문제는 풀고나서 효율화 면에서 애를 먹었다.분기 조건에 대해서 어떻게 구현해야할 지를 많이 고민했다. [문제 설명] 회사원 Demi는 가끔은 야근을 하는데요, 야근을 하면 야근 피로도가 쌓입니다. 야근 피로도는 야근을 시작한 시점에서 남은 일의 작업량을 제곱하여 더한 값입니다. Demi는 N시간 동안 야근 피로도를 최소화하도록 일할 겁니다.Demi가 1시간 동안 작업량 1만큼을 처리할 수 있다고 할 때, 퇴근까지 남은 N 시간과 각.. 2025. 2. 18. 이전 1 다음 728x90