본문 바로가기

알고리즘/프로그래머스46

[프로그래머스 / 호텔 대실 / JAVA] https://school.programmers.co.kr/learn/courses/30/lessons/155651 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 접근 입실 시간 정렬, 들어갈 수 있는지 없는지 true, false로 비교해보는 등 생각이 떠오른 건 있지만 정답으로의 접근이 수월치 않았다. 누적합을 이용하여 배열에서 인덱스가 누적된 횟수만큼 방 갯수를 return 해주는 방법으로 푼 방법이 있더라 이 분 풀이를 보면 그림으로도 설명되있어서 이해하기 편하다. https://ksb-dev.tistory.com/269 프로그래머스 - 호텔.. 2023. 5. 30.
[프로그래머스 / 무인도 여행 / JAVA] https://school.programmers.co.kr/learn/courses/30/lessons/154540 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 접근 편의상 1차원 배열인 maps를 2차원 char배열로 바꾸었다. 반복문을 돌면서 X도 아니고 방문하지 않은 지역을 발견하면 Pos타입의 큐에 값을 저장하고 bfs 탐색한 결과를 list에 추가한다. bfs탐색에선 현재 탐색 위치를 방문 표시로 바꿔주고 상하좌우를 살피면서 똑같이 X도 아니고 방문하지 않은 지역을 발견하면 큐에 값을 저장하는 작업을 반복한다. 작업을 반복하면서 섬의 숫자.. 2023. 5. 29.
[프로그래머스 / 요격 시스템 / JAVA] https://school.programmers.co.kr/learn/courses/30/lessons/181188 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 접근 앙증맞은 그림에 비해 생각보다 어려웠고 이해가 안되는 부분도 있었다. 람다식을 이용한 마지막 미사일 구간 오름차순 정렬이라던데 처음 봤다. 마지막 미사일 구간만 알면 미사일들 끼리 겹치는지 아닌지 알 수 있고 겹치는지만 알면 요격 지점을 어디로 두든 상관없다. 요격 지점은 실수 위치도 가능하기 때문 미사일 구간이 계속 겹치면 요격 지점을 추가하지 않고 겹치지 않으면 새로운 요격 지점을.. 2023. 5. 27.
[프로그래머스 / 연속된 부분 수열의 합 / JAVA] https://school.programmers.co.kr/learn/courses/30/lessons/178870 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 접근 투 포인터? 두 개의 인덱스를 움직여가며 원하는 값을 탐색한다. right부터 한 칸씩 움직여서 k가 만들어지거나 k를 넘기전까지 right의 인덱스를 차곡차곡 더한다. k를 만들면 그 때의 left, right 인덱스를 저장 k를 넘어가면 left 인덱스의 값을 삭제하고 left를 한 칸씩 움직인다. 이렇게 left, right를 동시에 움직이며 부분 수열 합이 k인 부분을 탐색한다.. 2023. 4. 13.
[프로그래머스 / 달리기 경주 / JAVA] https://school.programmers.co.kr/learn/courses/30/lessons/178871 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 접근 for문만 사용하면 시간초과가 뜨더라 그래서 map을 쓰면 되겠거니 했는데 map을 사용할 땐 호명되는 선수의 순위를 높일 순 있어도 추월당한 선수의 순위를 줄이는 방법이 생각이 안나더라 이 방법 저 방법 머리 돌리다 결국 빙빙 돌아서 찾게 되었다. players 배열의 인덱스로 map에 있는 선수들의 순위를 사용하였다. 추월당할 선수의 이름은 temp에 저장, 이후 추월당한 선수의 .. 2023. 4. 11.
[프로그래머스 / 추억 점수 / JAVA] https://school.programmers.co.kr/learn/courses/30/lessons/176963 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 접근 사진 속 인물은 여러 명이지만 모두를 그리워하진 않는다. 그리워하는 인물들은 따로 정해져있는데 이 인물들마다 그리움 점수가 있다. 이 그리워하는 인물들은 2차원 배열 안에 그룹별로 흩어져있다. 그룹별로 그리움 점수를 합산 그리워하는 이름들이랑 2차원 배열들이랑 일일이 비교하면 되지 않을까? 라는 생각이 들었는데 그렇게 단순한 문제면 일일이 비교했을 때 시간제한이 걸리게 만들어 놓지 않.. 2023. 3. 31.