[프로그래머스 - LV2] [3차] 파일명 정렬
·
알고리즘
문제 링크- https://school.programmers.co.kr/learn/courses/30/lessons/17686#문제 설명1. `HEAD` : 문자로만 이뤄진 부분2. `NUMBER` : 숫자로만 이뤄진 부분3. `TAIL` : 그 나머지 파일명을 위의 세 부분으로 나눠서 파일들을 정렬해야한다. 정렬 방법1. HEAD를 사전순으로 정렬(대소문자 구분 X)2. NUMBER를 오른차순으로 정렬3. 1, 2번이 모두 같으면, 기존에 주어진 순서를 유지 문제 풀이 1. file들을 `head`, `number`, `tail`로 구분해 문자일 때, 숫자일 때 그 나머지를 각각 넣어준다.- 여기서 char을 쓰면 숫자/문자 구분이 편한 것 같아 자주 쓰고 있다.2. 위의 정렬대로 정렬한다.- 대소문..
[프로그래머스 - LV2] [1차] 프렌즈4블록
·
알고리즘
문제 링크- https://school.programmers.co.kr/learn/courses/30/lessons/17679 문제 설명 - 주어진 `m` x `n` 보드에서 같은 모양인 2x2 블록을 찾아 제거- 제거된 후 제거된 공백을 위의 블록들이 떨어져 채움- 제거된 블록이 없을 때까지 반복하고, 제거되 블록 개수를 출력한다. 문제 풀이 1. `HashMap`으로 모양 별로 좌표를 모아 기록한다.2. hash의 각 노드에서 2x2 블럭인 `(x + 1, y)`, `(x, y + 1)`, `(x + 1, y + 1)` 가 같은 `key`를 가진다면, 제거할 좌표를 모은 `toRemove`에 추가한다.3. 모든 노드들을 검사한 후, `map`의 노드들에서 `toRemove` 에 있는 노드를 모두 제..
[프로그래머스 - LV2] 이모티콘 할인행사
·
알고리즘
문제 링크- https://school.programmers.co.kr/learn/courses/30/lessons/150368문제카카오톡에서는 이모티콘을 무제한으로 사용할 수 있는 이모티콘 플러스 서비스 가입자 수를 늘리려고 합니다.이를 위해 카카오톡에서는 이모티콘 할인 행사를 하는데, 목표는 다음과 같습니다.이모티콘 플러스 서비스 가입자를 최대한 늘리는 것.이모티콘 판매액을 최대한 늘리는 것.1번 목표가 우선이며, 2번 목표가 그 다음입니다.이모티콘 할인 행사는 다음과 같은 방식으로 진행됩니다.n명의 카카오톡 사용자들에게 이모티콘 m개를 할인하여 판매합니다.이모티콘마다 할인율은 다를 수 있으며, 할인율은 10%, 20%, 30%, 40% 중 하나로 설정됩니다.카카오톡 사용자들은 다음과 같은 기준을 따..
[프로그래머스 - LV2] [1차]뉴스 클러스터링
·
알고리즘
문제 링크https://school.programmers.co.kr/learn/courses/30/lessons/17677#문제여러 언론사에서 쏟아지는 뉴스, 특히 속보성 뉴스를 보면 비슷비슷한 제목의 기사가 많아 정작 필요한 기사를 찾기가 어렵다. Daum 뉴스의 개발 업무를 맡게 된 신입사원 튜브는 사용자들이 편리하게 다양한 뉴스를 찾아볼 수 있도록 문제점을 개선하는 업무를 맡게 되었다.개발의 방향을 잡기 위해 튜브는 우선 최근 화제가 되고 있는 "카카오 신입 개발자 공채" 관련 기사를 검색해보았다.카카오 첫 공채..'블라인드' 방식 채용카카오, 합병 후 첫 공채.. 블라인드 전형으로 개발자 채용카카오, 블라인드 전형으로 신입 개발자 공채카카오 공채, 신입 개발자 코딩 능력만 본다카카오, 신입 공채...
[프로그래머스 - LV1] 숫자 문자열과 영단어
·
알고리즘
문제 링크">문제 링크- https://school.programmers.co.kr/learn/courses/30/lessons/81301 문제">문제네오와 프로도가 숫자놀이를 하고 있습니다. 네오가 프로도에게 숫자를 건넬 때 일부 자릿수를 영단어로 바꾼 카드를 건네주면 프로도는 원래 숫자를 찾는 게임입니다.다음은 숫자의 일부 자릿수를 영단어로 바꾸는 예시입니다.1478 → "one4seveneight"234567 → "23four5six7"10203 → "1zerotwozero3"이렇게 숫자의 일부 자릿수가 영단어로 바뀌어졌거나, 혹은 바뀌지 않고 그대로인 문자열 s가 매개변수로 주어집니다. s가 의미하는 원래 숫자를 return 하도록 solution 함수를 완성해주세요. 참고로 각 숫자에 대응되는..
[프로그래머스 - LV2] [1차]캐시
·
알고리즘
문제 링크 ">문제 링크https://school.programmers.co.kr/learn/courses/30/lessons/17680 문제 ">문제 지도개발팀에서 근무하는 제이지는 지도에서 도시 이름을 검색하면 해당 도시와 관련된 맛집 게시물들을 데이터베이스에서 읽어 보여주는 서비스를 개발하고 있다.이 프로그램의 테스팅 업무를 담당하고 있는 어피치는 서비스를 오픈하기 전 각 로직에 대한 성능 측정을 수행하였는데, 제이지가 작성한 부분 중 데이터베이스에서 게시물을 가져오는 부분의 실행시간이 너무 오래 걸린다는 것을 알게 되었다.어피치는 제이지에게 해당 로직을 개선하라고 닦달하기 시작하였고, 제이지는 DB 캐시를 적용하여 성능 개선을 시도하고 있지만 캐시 크기를 얼마로 해야 효율적인지 몰라 난감한 상황이..
[프로그래머스] 더 맵게
·
알고리즘
문제 링크https://school.programmers.co.kr/learn/courses/30/lessons/42626#문제매운 것을 좋아하는 Leo는 모든 음식의 스코빌 지수를 K 이상으로 만들고 싶습니다. 모든 음식의 스코빌 지수를 K 이상으로 만들기 위해 Leo는 스코빌 지수가 가장 낮은 두 개의 음식을 아래와 같이 특별한 방법으로 섞어 새로운 음식을 만듭니다.섞은 음식의 스코빌 지수 = 가장 맵지 않은 음식의 스코빌 지수 + (두 번째로 맵지 않은 음식의 스코빌 지수 * 2)Leo는 모든 음식의 스코빌 지수가 K 이상이 될 때까지 반복하여 섞습니다.Leo가 가진 음식의 스코빌 지수를 담은 배열 scoville과 원하는 스코빌 지수 K가 주어질 때, 모든 음식의 스코빌 지수를 K 이상으로 만들기..
[프로그래머스 - LV2] 프로세스
·
알고리즘
문제 링크https://school.programmers.co.kr/learn/courses/30/lessons/42587#문제운영체제의 역할 중 하나는 컴퓨터 시스템의 자원을 효율적으로 관리하는 것입니다. 이 문제에서는 운영체제가 다음 규칙에 따라 프로세스를 관리할 경우 특정 프로세스가 몇 번째로 실행되는지 알아내면 됩니다.실행 대기 큐(Queue)에서 대기중인 프로세스 하나를 꺼냅니다.큐에 대기중인 프로세스 중 우선순위가 더 높은 프로세스가 있다면 방금 꺼낸 프로세스를 다시 큐에 넣습니다.만약 그런 프로세스가 없다면 방금 꺼낸 프로세스를 실행합니다.3.1 한 번 실행한 프로세스는 다시 큐에 넣지 않고 그대로 종료됩니다. 예를 들어 프로세스 4개 [A, B, C, D]가 순서대로 실행 대기 큐에 들어..
[프로그래머스] PCCP 기출 문제 1번 - 붕대 감기
·
알고리즘
문제 링크https://school.programmers.co.kr/learn/courses/30/lessons/250137문제제한 사항입출력 예제출 코드시뮬레이션 문제. 문제 조건 그대로 이행하면 쉽게 풀 수 있다.health가 초기값보다 클 수 없음공격이 아닐 때체력 bandage[1] 만큼 회복연속 성공 시간 heal + 1만약 연속 성공 시간이 bandage[0]과 같다면, health에 추가 회복량 bandage[2]를 더하고 성공 시간을 0으로 초기화공격일 때성공 시간을 0으로 초기화health를 공격인 attacks[idx][1] 만큼 감소만약 health가 0이하면 -1를 리턴한다.이 과정을 공격이 끝날때까지 반복한다. class Solution { public int solution..