전체 글 142

[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까지 번호가 지정되어 있습니다. 기사들은 무기점에서 무기를 구매하려고 합니다. 각 기사는 자신의 기사 번호의 약수 개수에 해당하는 공격력을 가진 무기를 구매하려 합니다. 단, 이웃나라와의 협약에 의해 공격력의 제한수치를 정하고, 제한..

[프로그래머스] 명예의전당(1)

뭐야 실패떴었는데 다시 실행해보니까 된다 프로그래머스 일해라~"명예의 전당"이라는 TV 프로그램에서는 매일 1명의 가수가 노래를 부르고, 시청자들의 문자 투표수로 가수에게 점수를 부여합니다. 매일 출연한 가수의 점수가 지금까지 출연 가수들의 점수 중 상위 k번째 이내이면 해당 가수의 점수를 명예의 전당이라는 목록에 올려 기념합니다. 즉 프로그램 시작 이후 초기에 k일까지는 모든 출연 가수의 점수가 명예의 전당에 오르게 됩니다. k일 다음부터는 출연 가수의 점수가 기존의 명예의 전당 목록의 k번째 순위의 가수 점수보다 더 높으면, 출연 가수의 점수가 명예의 전당에 오르게 되고 기존의 k번째 순위의 점수는 명예의 전당에서 내려오게 됩니다. 이 프로그램에서는 매일 "명예의 전당"의 최하위 점수를 발표합니다. ..