전체 글 133

[Softeer] 함께하는 효도

다 푼줄 알았는데,, DFS나 BFS를 모르고 풀기에는 무리가 있나보다.... 내코드는 오답임남우는 m명의 친구를 불러 나무에서 열매를 수확하는 일을 맡겼습니다. 나무들은 n * n 크기의 격자 모양의 땅 위의 모든 칸에 심어져 있고, 각 나무마다 가능한 열매 수확량이 주어져 있습니다.친구들은 n * n 크기의 격자 내의 서로 다른 위치에서 출발하여 1초에 1칸씩 상하좌우 인접한 칸 중 한 곳으로 움직일 수 있으며, 최종적으로 모든 열매 수확량의 합을 최대로 만들고자 합니다. 이때 각 칸에서 열매를 수확하는데 걸리는 시간은 0초이며, 한 나무에 여러 친구가 방문하게 되더라도 열매는 딱 한 번만 수확이 가능합니다. 또, 친구들끼리 이동하는 도중 이동 경로가 겹치는 것은 불가능합니다.m명의 친구들이 3초 동..

[Softeer] GBC

그냥저냥 구현문제..글로벌 비즈니스 센터(GBC, Global Business Center)는 현대자동차그룹 통합 사옥이다.지하 7층, 지상 105층, 높이 약 570m의 규모로 2026년 하반기에 완공을 목표로 현재 공사 중에 있다.이러한 초고층 높이의 빌딩에는 초고층 승강기가 들어가야 한다. 엘리베이터 정비공인 광우는 0m 부터 100m까지 일정 구간들의 엘리베이터 속도를 검사하는 업무를 맡게 되었다. 빌딩에서 운영되는 엘리베이터 구간은 N개의 구간으로 나뉘며 해당 구간의 제한 속도이 주어진다. 구간의 총 합은 100m 이며 각 구간별 구간의 길이와 제한 속도 모두 양의 정수로 주어진다. 예를 들어보자. 구간이 3이라고 할 때,▶ 첫 번째 구간의 길이는 50m 이고 제한 속도는 50m/s▶ 두 번째 ..

[Softeer] [21년 재직자 대회 예선] 회의실 예약

단순 구현이다. 이런 점, 선기준(회의실,, 예약 등등)에서는 인덱스값을 정확히 할것.회사에는 N개의 회의실이 있다. 수많은 팀이 모여 토론하고 업무를 처리하기 위해서는 회의실이 필수적이다. 내부망에 아주 간단한 회의실 예약 시스템이 있지만 편의성이 매우 떨어진다. 단순히 예약된 회의의 목록만 표시되기 때문에, 방 별로 비어 있는 시간이 언제인지를 확인하기가 힘든 것이다. 당신은 이를 직접 해결해 보기로 마음 먹었다. 회의실 이용 규칙은 다음과 같다: - 회의실은 9시부터 18시까지만 사용 가능하다. 모든 회의의 시간은 이 안에 완전히 포함되어야 한다.- 회의는 정확히 한 회의실을 연속한 일정 시간 동안만 점유한다. 즉 각 회의는 (회의실, 시작 시각, 종료 시각)의 정보로 나타낼 수 있다.- 회의의 시..

[프로그래머스] 콜라문제

아니 나는 풀었는데 미친 답이 있어서 그게 이해가 안된다... 미친 답class Solution { public int solution(int a, int b, int n) { return (n > b ? n - b : 0) / (a - b) * b; }} a-b -> a개주면 b개 돌려받기때문에 (a-b) * b인거는 알겠는데,, 왜 n-b..?문제 설명 오래전 유행했던 콜라 문제가 있습니다. 콜라 문제의 지문은 다음과 같습니다. 정답은 아무에게도 말하지 마세요. 콜라 빈 병 2개를 가져다주면 콜라 1병을 주는 마트가 있다. 빈 병 20개를 가져다주면 몇 병을 받을 수 있는가? 단, 보유 중인 빈 병이 2개 미만이면, 콜라를 받을 수 없다. 문제를 풀던 상빈이는 콜라 문제의 완벽..

[프로그래머스] 옹알이(2)

replaceAll의 단점. 예를들어 myea에서 ye를 공백으로 replace해버리면, ma가 되버리기때문에 발음가능하다고 착각되는 경우가 생긴다. 그러므로 공백으로 replace하지말고, 일단 "@"와같은 특수문자로 replace를 하고, for문이 전부 끝난 뒤에 @를 공백으로 replace해주면 정상적으로 통과한다. 코테의 맹점은 반례를 찾는것...문제 설명 머쓱이는 태어난 지 11개월 된 조카를 돌보고 있습니다. 조카는 아직 "aya", "ye", "woo", "ma" 네 가지 발음과 네 가지 발음을 조합해서 만들 수 있는 발음밖에 하지 못하고 연속해서 같은 발음을 하는 것을 어려워합니다. 문자열 배열 babbling이 매개변수로 주어질 때, 머쓱이의 조카가 발음할 수 있는 단어의 개수를 ret..

[프로그래머스] 햄버거만들기

시간복잡도를 따질때는,, java에서 제공하는 메소드를 for문안에 넣기보다는, 차라리 if문을 길게쓰는게 시간에 유리하다.나같은 경우에는 indexOf과 replaceAll을 써서 시간복잡도를 초과했다.햄버거 가게에서 일을 하는 상수는 햄버거를 포장하는 일을 합니다. 함께 일을 하는 다른 직원들이 햄버거에 들어갈 재료를 조리해 주면 조리된 순서대로 상수의 앞에 아래서부터 위로 쌓이게 되고, 상수는 순서에 맞게 쌓여서 완성된 햄버거를 따로 옮겨 포장을 하게 됩니다. 상수가 일하는 가게는 정해진 순서(아래서부터, 빵 – 야채 – 고기 - 빵)로 쌓인 햄버거만 포장을 합니다. 상수는 손이 굉장히 빠르기 때문에 상수가 포장하는 동안 속 재료가 추가적으로 들어오는 일은 없으며, 재료의 높이는 무시하여 재료가 높..

[프로그래머스] 푸드 파이트 대회

특별할 것 없는문제,, 얼른 레벨2로 넘어가야겠다..수웅이는 매달 주어진 음식을 빨리 먹는 푸드 파이트 대회를 개최합니다. 이 대회에서 선수들은 1대 1로 대결하며, 매 대결마다 음식의 종류와 양이 바뀝니다. 대결은 준비된 음식들을 일렬로 배치한 뒤, 한 선수는 제일 왼쪽에 있는 음식부터 오른쪽으로, 다른 선수는 제일 오른쪽에 있는 음식부터 왼쪽으로 순서대로 먹는 방식으로 진행됩니다. 중앙에는 물을 배치하고, 물을 먼저 먹는 선수가 승리하게 됩니다. 이때, 대회의 공정성을 위해 두 선수가 먹는 음식의 종류와 양이 같아야 하며, 음식을 먹는 순서도 같아야 합니다. 또한, 이번 대회부터는 칼로리가 낮은 음식을 먼저 먹을 수 있게 배치하여 선수들이 음식을 더 잘 먹을 수 있게 하려고 합니다. 이번 대회를 위해..

[프로그래머스] 과일장수

로직은 스스로 생각해 냈지만,, int배열을 내림차순 정렬하는게 기억이 안나서 Stream은 ChatGPT한테 물어봤다..int[] arr = {5, 3, 8, 1, 9};arr = Arrays.stream(arr) //int 배열인 arr를 각 요소에 대한 처리가 가능하도록 스트림으로 변환합니다. .boxed() //Comparator를 사용할 수 있게 기본 타입 int 값을 래퍼 클래스인 Integer로 변환 .sorted(Comparator.reverseOrder()) //Comparator.reverseOrder()를 적용하여 내림차순으로 정렬 .mapToInt(Integer::intValue) //정렬된 Stream를 다시 int로 언박..

[프로그래머스] 기사단원의 무기

약수를 구하는법은 1부터 n까지 나누어지는게 0인수들의 모음을 구하는법도 있지만 아래방법도 있다. 시간복잡도를 사용할때는 아래 방법을 쓸것. i*i 이전까지만 순회하면 되기때문에 속도면에서 유리하다 public int getY(int number, int limit, int power){ int ret = 0; for(int i = 1; i * i limit ? power : ret; }숫자나라 기사단의 각 기사에게는 1번부터 number까지 번호가 지정되어 있습니다. 기사들은 무기점에서 무기를 구매하려고 합니다. 각 기사는 자신의 기사 번호의 약수 개수에 해당하는 공격력을 가진 무기를 구매하려 합니다. 단, 이웃나라와의 협약에 의해 공격력의 제한수치를 정하고, 제한..