본문 바로가기

Algorithm30

[Softeer] 장애물 인식 프로그램 - JAVA 장애물 인식 프로그램 문제 바로가기 풀이 전형적인 탐색문제이다. DFS, BFS 원하는 방식으로 풀면 될 것 같다. 전체를 한번씩 순회하해야 되니까 중복 방문 방지를 위한 방문체크(visited) 가 필요하고, 순회할때마다 카운팅을 해서 마지막에 오름차순 후 출력해주면 된다. import java.util.*; import java.io.*; import java.util.stream.IntStream; public class Main { private static int N; private static int[][] arr; private static boolean[][] visited; private static List hurdleAreaCountList = new ArrayList(); priva.. 2023. 8. 2.
[Softeer] 8단 변속기 - JAVA 8단 변속기 문제 바로가기 풀이 간단한 문제이다. 입력된 배열이 오름차순이면 "ascending" 출력 내림차순이면 "descending" 출력 아닐경우 "mixed" 출력하면 된다. 이런경우는 배열을 생성하여 Arrays.equals 메서드를 사용하여 비교하는게 로직상 간단하다. import java.util.*; import java.io.*; import java.util.stream.IntStream; public class Main { private static final int[] ascending = {1, 2, 3, 4, 5, 6, 7, 8}; private static final int[] descending = {8, 7, 6, 5, 4, 3, 2, 1}; public static v.. 2023. 8. 2.
[Softeer] 금고털이 - JAVA 금고털이 문제 바로가기 풀이 이번문제는 문제대충 읽고 배낭문제로 접근했었는데 자세히보니 톱으로 자를수 있다?... 근데 설명이 좀 난해한 부분이 있는 것 같다. 무게당 가격이란 단어때매 햇갈렸다.. 무게당 가격의 의미는 해당 보석의 가격이 아니라 1g당 가격을 의미한다. 즉, 높은 무게로 정렬을 하고 배낭을 가득채워주면 된다 그러므로 정렬, 그리디 알고리즘으로 접근하면 된다. 로직은 크게 어려울게 없다. 정렬 후 배낭에 보석들을 채워가며 넣어주다가 배낭이 가득차면 멈추면된다. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Arrays; import java.. 2023. 8. 2.
[백준] 16471번 : 작은 수 내기 (JAVA) https://www.acmicpc.net/problem/16471 16471번: 작은 수 내기 여자친구와 함께 보드게임카페에 간 주언이는, 여러 보드게임을 하며 데이트를 즐겼다. 3시간 커플세트로 결제를 하려던 순간, 주언이는 가격표 옆에 쓰여 있는 새로운 이벤트를 보았다. 바로 www.acmicpc.net 풀이 정렬, 그리디 문제이다. 조건을 문제에 다 적어줘서 그대로 구현만 하면된다. 주언이가 카드를 냈을 때 사장님이 낸 카드의 조건이 다음과 같아야 한다. 1. 주언이의 카드보단 숫자가 커야한다 2. 1조건에 부합하는 카드중 가장 작은 숫자여야 한다. 그래야 주언이가 이길 수 있는 최선의 로직을 탐색할 수 있다. 풀이 과정을 살펴보자 1. 먼저 주언이의 카드와 사장님의 카드를 오름차순으로 정렬해준다.. 2023. 7. 7.
[프로그래머스] 할인행사 (JAVA) https://school.programmers.co.kr/learn/courses/30/lessons/131127 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 Map의 자료구조를 사용하여 쉽게 풀 수 있는 문제이다. 1. Map에 필요한 물건을 key, 개수를 value로 생성해준다. 2. discount의 9일전까지 반복을 해준다 (그 이상은 마트에 등록을해도 10일이 안채워지기 때문) 3. 현재 마트에서 할인하는 물품이 wantCount에 없는 물품이라면 다음날로 이동 (결국 모든 물품을 사지 못하기때문에) 4. 위까지 통과하였다면 map에서.. 2023. 7. 5.
[프로그래머스] 택배상자(JAVA) https://school.programmers.co.kr/learn/courses/30/lessons/131704# 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 보조 컨테이너 벨트는 앞 뒤로 이동이 가능하지만 입구 외에 다른 면이 막혀 있어서 맨 앞의 상자만 뺄 수 있습니다(즉, 가장 마지막에 보조 컨테이너 벨트에 보관한 상자부터 꺼내게 됩니다). 위 문장에서 말하는 "보조 컨테이너 벨트에 보관한 상자"를 생각해보면, 보조 컨테이너 벨트는 상자들을 쌓는 구조로 이루어져 있을 것이다. 그렇다면 stack 자료구조를 사용하는것이 적절하다. 먼저 se.. 2023. 7. 4.