분류 전체보기 148

[프로그래머스] 입국심사 - Java

문제https://school.programmers.co.kr/learn/courses/30/lessons/43238 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr  문제 개요이 문제는 여러 심사대를 통해 주어진 사람 수 n명을 가능한 한 최소 시간에 모두 심사하는 방법을 찾는 문제입니다. 각 심사대의 심사 시간은 다르며, 모든 사람이 심사를 완료하는데 걸리는 시간의 최솟값을 구해야 합니다.문제 접근 방식입국 심사 문제는 이분 탐색을 활용해 최적의 답을 찾아낼 수 있습니다. 이 문제를 해결하기 위해 전체 시간을 이분 탐색으로 줄여가며 필요한 최소 시간을 찾아낼 수 있습니다.문제 풀이이분 탐색 설정:가능..

[프로그래머스] 여행경로 - Java

문제https://school.programmers.co.kr/learn/courses/30/lessons/43164 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr  문제 개요이 문제는 주어진 항공권을 모두 사용해 여행 경로를 찾는 문제입니다. 여행은 항상 "ICN" 공항에서 출발하며, 항공권을 사용해 여러 공항을 방문하는 단 하나의 경로를 찾아야 합니다. 여행 경로를 찾는 것을 목표로 하며, 알파벳 순서에 따라 경로를 정렬하는 정렬 문제이기도 합니다.문제 분석항공권 사용 조건: 모든 항공권을 반드시 사용해야 합니다.중복 경로: 여러 경로가 가능한 경우 알파벳 순서가 우선인 경로를 반환해야 합니다.탐색..

[프로그래머스] 단어 변환 - Java

문제https://school.programmers.co.kr/learn/courses/30/lessons/43163 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 문제 개요두 개의 단어 begin, target과 단어 집합 words가 주어집니다. 단어 변환 규칙은 다음과 같습니다.한 번에 하나의 알파벳만 바꿀 수 있습니다.변환 과정에서의 단어는 words에 포함되어야 합니다.목표는 begin을 시작으로 target으로 변환하는 최소 변환 단계를 찾는 것입니다. 변환할 수 없는 경우 0을 반환합니다.문제 분석단어 하나씩 알파벳 하나만 바꿔 target에 도달해야 합니다.각 단어가 words에 포함된 ..

[프로그래머스] 소수 찾기 - Java

문제https://school.programmers.co.kr/learn/courses/30/lessons/42839 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr  문제 개요숫자가 적힌 종이 조각이 흩어져 있습니다. 이 조각들을 붙여서 소수를 만들 수 있는 숫자 조합이 몇 개인지 알아내는 문제입니다. 주어진 문자열 numbers로 만들 수 있는 모든 조합을 생성하여, 그 중 소수인 숫자를 찾아 개수를 반환하는 프로그램을 작성합니다.문제 접근 방법모든 조합 생성: 주어진 문자열에서 한 자리 수부터 numbers.length 자리 수까지 가능한 모든 조합을 생성합니다.중복 제거: HashSet을 사용해 ..

[프로그래머스] 이중우선순위큐 - Java

문제https://school.programmers.co.kr/learn/courses/30/lessons/42628# 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr  문제 개요이중 우선순위 큐는 일반적인 우선순위 큐의 기능을 확장하여 최댓값과 최솟값을 동시에 관리할 수 있는 자료구조입니다. 이 문제에서 주어진 연산에는 다음과 같은 기능이 있습니다.I 숫자: 숫자를 큐에 삽입합니다.D 1: 큐에서 최댓값을 삭제합니다.D -1: 큐에서 최솟값을 삭제합니다.이 연산을 처리한 후 큐가 비어 있으면 [0, 0], 비어 있지 않으면 [최댓값, 최솟값]을 반환해야 합니다.해결 방법우선순위 큐 활용자바의 Prior..

[프로그래머스] 다리를 지나는 트럭 - Java

문제https://school.programmers.co.kr/learn/courses/30/lessons/42583 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr  문제 개요트럭들이 순서대로 일차선 다리를 건너려 합니다. 다리는 최대 bridge_length대의 트럭을 동시에 수용할 수 있으며, 총 무게 weight만큼의 하중을 견딜 수 있습니다. 모든 트럭이 대기열 순서대로 다리를 건널 때 필요한 최소 시간을 구하는 문제입니다. 문제 풀이 개요각 트럭이 다리를 건너는 상황을 시뮬레이션하여 풀이합니다. 다리를 건너는 트럭들을 큐에 저장하며 트럭이 다리를 통과할 때마다 시간을 증가시키고, 새로운 트럭이..

[프로그래머스] 의상 - Java

문제https://school.programmers.co.kr/learn/courses/30/lessons/42578 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr  문제 개요코니는 다양한 옷 조합을 좋아합니다. 여러 종류의 옷을 가지고 있는 코니는 매일 다른 조합으로 옷을 입고 싶어 합니다. 각 옷은 특정 종류에 해당하며, 같은 종류의 옷은 한 번에 하나씩만 입을 수 있습니다. 최소 하나의 옷을 입어야 하며, 주어진 옷들로 서로 다른 조합의 수를 구하는 문제입니다. 접근 방법옷의 조합을 구하기 위해서는 각 종류별로 옷의 개수를 확인하고, 각 옷을 입거나 입지 않는 경우를 계산합니다. 조합의 경우 수는..

[백준] 1654 랜선 자르기 - Java

문제https://www.acmicpc.net/problem/1654  문제 개요오영식은 K개의 서로 다른 길이의 랜선을 가지고 있으며, 이를 잘라 N개의 동일한 길이의 랜선으로 만들어야 합니다. 랜선을 자를 때는 남은 조각을 사용할 수 없고, 자르는 길이는 항상 정수 단위로 진행됩니다. 목표는 N개의 랜선을 만들 수 있는 최대 길이를 구하는 것입니다. 접근 방법 이 문제는 가능한 최대 길이를 찾기 위해 이진 탐색을 사용하는 방법으로 접근할 수 있습니다.랜선을 만들 수 있는 최소 길이 min = 1과 최대 길이 max = 가장 긴 랜선의 길이를 설정하고, 이진 탐색으로 길이를 탐색합니다.mid를 현재 중간 길이로 설정한 후, 모든 랜선을 mid 길이로 자를 때 총 몇 개의 랜선을 만들 수 있는지 계산합니..

문제/백준 2024.10.25

[백준] 7682 틱택토 - Java

문제https://www.acmicpc.net/problem/7682  문제 개요틱택토는 두 명이 번갈아 가며 말을 놓는 게임으로, 3×3 격자판에서 X와 O를 배치하여 가로, 세로, 또는 대각선 방향으로 연속된 3칸을 채우면 승리하는 게임입니다. 이 문제에서는 특정 틱택토 게임판 상태가 게임의 규칙을 준수하는 유효한 최종 상태인지 판별해야 합니다. 접근 방법게임판 상태 입력 및 변환:입력을 받아 3x3 형태의 게임판으로 변환합니다.입력의 각 문자(X, O, .)는 게임판의 상태를 나타냅니다.유효성 검사:X와 O의 개수 조건: X의 개수는 항상 O보다 크거나 같고, 최대 1개 더 많아야 합니다.승리 조건 검사: X 또는 O가 승리 조건을 만족했는지 확인합니다.여러 승리 조건 확인:만약 X와 O가 동시에 ..

문제/백준 2024.10.25

[백준] 3190 뱀 - Java

문제https://www.acmicpc.net/problem/3190  문제 개요'Dummy'라는 도스게임에서는 뱀이 정사각형 NxN 보드에서 사과를 먹으며 움직이다가 벽이나 자신의 몸에 부딪히면 게임이 끝납니다. 뱀은 처음에 길이가 1이며 매 초마다 이동합니다. 이동 중 사과를 먹으면 길이가 늘어나고, 사과가 없으면 꼬리를 줄입니다. 게임은 뱀이 벽이나 자신의 몸과 부딪힐 때 종료되며, 주어진 사과의 위치와 방향 변환 정보에 따라 게임이 몇 초에 끝나는지를 구하는 문제입니다.접근 방법시뮬레이션을 통한 구현이 문제는 단순한 규칙에 따라 뱀의 움직임을 시뮬레이션하면 해결할 수 있습니다. 뱀의 이동을 매 초마다 시뮬레이션하면서 벽이나 자기 몸과 충돌하는지 체크합니다. 사과가 있는 경우, 사과를 먹고 몸을 늘..

문제/백준 2024.10.24