본문 바로가기

Coding Test75

[알고리즘 문제 풀이] 백준 1303 전쟁 - 전투 (자바) : BFS 문제 설명 ❝ 문제 ❞전쟁은 어느덧 전면전이 시작되었다. 결국 전투는 난전이 되었고, 우리 병사와 적국 병사가 섞여 싸우게 되었다. 그러나 당신의 병사들은 흰색 옷을 입고, 적국의 병사들은 파란색 옷을 입었기 때문에 서로가 적인지 아군인지는 구분할 수 있다. 문제는 같은 팀의 병사들은 모이면 모일수록 강해진다는 사실이다.N명이 뭉쳐있을 때는 N2의 위력을 낼 수 있다. 과연 지금 난전의 상황에서는 누가 승리할 것인가? 단, 같은 팀의 병사들이 대각선으로만 인접한 경우는 뭉쳐 있다고 보지 않는다.❝ 입력 ❞첫째 줄에는 전쟁터의 가로 크기 N, 세로 크기 M(1 ≤ N, M ≤ 100)이 주어진다. 그 다음 두 번째 줄에서 M+1번째 줄에는 각각 (X, Y)에 있는 병사들의 옷색이 띄어쓰기 없이 주어진다. .. 2024. 7. 4.
[알고리즘 문제 풀이] 백준 1260 DFS와 BFS (자바) 문제 설명 ❝문제❞그래프를 DFS로 탐색한 결과와 BFS로 탐색한 결과를 출력하는 프로그램을 작성하시오. 단, 방문할 수 있는 정점이 여러 개인 경우에는 정점 번호가 작은 것을 먼저 방문하고, 더 이상 방문할 수 있는 점이 없는 경우 종료한다. 정점 번호는 1번부터 N번까지이다. ❝입력❞첫째 줄에 정점의 개수 N(1 ≤ N ≤ 1,000), 간선의 개수 M(1 ≤ M ≤ 10,000), 탐색을 시작할 정점의 번호 V가 주어진다. 다음 M개의 줄에는 간선이 연결하는 두 정점의 번호가 주어진다. 어떤 두 정점 사이에 여러 개의 간선이 있을 수 있다. 입력으로 주어지는 간선은 양방향이다. ❝출력❞첫째 줄에 DFS를 수행한 결과를, 그 다음 줄에는 BFS를 수행한 결과를 출력한다. V부터 방문된 점을 순서대로 .. 2024. 7. 3.
[프로그래머스] Lv.2 구명 보트 (자바) 문제 설명  무인도에 갇힌 사람들을 구명보트를 이용하여 구출하려고 합니다. 구명보트는 작아서 한 번에 최대 2명씩 밖에 탈 수 없고, 무게 제한도 있습니다.예를 들어, 사람들의 몸무게가 [70kg, 50kg, 80kg, 50kg]이고 구명보트의 무게 제한이 100kg이라면 2번째 사람과 4번째 사람은 같이 탈 수 있지만 1번째 사람과 3번째 사람의 무게의 합은 150kg이므로 구명보트의 무게 제한을 초과하여 같이 탈 수 없습니다.구명보트를 최대한 적게 사용하여 모든 사람을 구출하려고 합니다.사람들의 몸무게를 담은 배열 people과 구명보트의 무게 제한 limit가 매개변수로 주어질 때, 모든 사람을 구출하기 위해 필요한 구명보트 개수의 최솟값을 return 하도록 solution 함수를 작성해주세요.제.. 2024. 6. 29.
[프로그래머스] Lv.2 올바른 괄호 (자바) 문제 설명 올바르게 쌍을 이루는 괄호의 정의는 '(' 문자로 열면 ')' 문자로 닫아야 함을 의미합니다.예를 들어,"()()" 또는 "(())()"는 올바른 괄호입니다.")()(" 또는 "(()("는 잘못된 괄호입니다.'(' 또는 ')'로만 구성된 문자열이 주어지면 s문자열이 s올바른 괄호이면 true를 반환하고 그렇지 않으면 false를 반환하는 해결 함수를 완성하세요.제약문자열의 길이 s: 100,000 이하의 자연수문자열은 s'(' 또는 ')'로만 구성됩니다.예에스답변"()()"진실"(())()"진실")()("거짓"(()("거짓예시 #1위의 예와 동일합니다. 문제 분석1. Stack을 사용하여 짝이 맞으면, 즉 올바른 괄호"( )"면 제거 하자. -> 짝짓는 문제는 stack 이용( 햄버거, 인형뽑.. 2024. 6. 26.
[프로그래머스] Lv.1 성격 유형 검사하기 (java) 전체 코드  - 수정 전 import java.util.*;class Solution { public String solution(String[] survey, int[] choices) { String answer = ""; int[] score = {3,2,1,0,1,2,3}; // 성격 유형 등록하기 char[] mbti_char = {'R', 'T', 'C', 'F', 'J', 'M', 'A','N'}; HashMap mbti = new HashMap(); for(char c : mbti_char) { mbti.put(c, 0); .. 2024. 5. 17.
[프로그래머스] Lv.1 체육복 (java) 문제 설명 점심시간에 도둑이 들어, 일부 학생이 체육복을 도난당했습니다. 다행히 여벌 체육복이 있는 학생이 이들에게 체육복을 빌려주려 합니다. 학생들의 번호는 체격 순으로 매겨져 있어, 바로 앞번호의 학생이나 바로 뒷번호의 학생에게만 체육복을 빌려줄 수 있습니다. 예를 들어, 4번 학생은 3번 학생이나 5번 학생에게만 체육복을 빌려줄 수 있습니다. 체육복이 없으면 수업을 들을 수 없기 때문에 체육복을 적절히 빌려 최대한 많은 학생이 체육수업을 들어야 합니다.전체 학생의 수 n, 체육복을 도난당한 학생들의 번호가 담긴 배열 lost, 여벌의 체육복을 가져온 학생들의 번호가 담긴 배열 reserve가 매개변수로 주어질 때, 체육수업을 들을 수 있는 학생의 최댓값을 return 하도록 solution 함수를 .. 2024. 5. 9.