코딩테스트 11

[Level 2 | Python] 이모티콘 할인행사 (2023 KAKAO BLIND RECRUITMENT)

https://school.programmers.co.kr/learn/courses/30/lessons/150368 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr문제카카오톡에서 이모티콘 할인 행사를 한다. 목표는 다음과 같다.1. 이모티콘 플러스 서비스 가입자를 최대한 늘리기2. 이모티콘 판매액을 최대한 늘리기 (이모티컨 플러스 서비스 가입자가 같다면) 여기서 중요한 점은 이모티콘 할인행사의 할인율은 이모티콘마다 다를 수 있고, 10%, 20%, 30%, 40% 중에 하나이다. 풀이 과정처음에 딱 보고 완전탐색으로 풀 수 있나 시간복잡도를 계산해보았다. 시간복잡도사용자 수 최대 100명, 이모티컨 개수..

[Boj | Gold 3 | Python] 치즈

https://www.acmicpc.net/problem/2638문제치즈가 외부 공기와 두 칸 이상 접촉하면 1시간 뒤 녹는다. 치즈가 다 녹을 때까지 몇 시간 걸리나? 풀이과정치즈 = 1 , 빈 공간 = 0일단 치즈로 외곽 안에 0인 애들을 조심해야 한다. 무작정 전체 완전탐색으로 BFS 돌렸다가는 안에 0도 같이 카운트에서 녹이면 안 될 것도 녹여버릴 수 있다.외곽은 -1로 만들어주고, 완전 탐색으로 "외곽"이 두 개 이상 닿는 것을 카운트 해서 -1로 만들어 주면 된다. 그리고 위에 그림3과 같이 치즈 외곽에 막혔다 뚫린 경우를 위해 BFS 탐색을 통해 외곽과 0이 닿으면 0을 -1로 바꿔준다. find_melt_cheese의 flag는 1이 없을 때 True를 return 하고 치즈가 남아 있으면..

[Level 2 | Python] 지게차와 크레인 (2025 프로그래머스 코드챌린지)

https://school.programmers.co.kr/learn/courses/30/lessons/388353 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 문제https://jinsang-2.tistory.com/129https://www.acmicpc.net/problem/2638백준 치즈 문제와 비슷하다.  물류창고에 알파벳 컨테이너가 있는데, 지게차 같은 경우에는 "A"와 같은 형태이며 외곽에 있는 것들만 꺼낼 수 있다. 외곽부터 껍질 깎기 느낌으로 생각하면 된다. 크레인 같은경우에는 요청된 모든 종류의 컨테이너를 꺼낸다. 첫번째 세번째는 지게차로 'A' 꺼내기, 두번째 예시는 크레인으로 ..

[Level 2 | Python] 서버 증설 횟수 (2025 프로그래머스 코드챌린지)

https://school.programmers.co.kr/learn/courses/30/lessons/389479 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 문제서버를 게임 이용자의 수에 맞게 자동으로 scale-out 가능하게 구현하는 문제이다.m=3이고 k=5 일 때의 시간대별 증설된 서버의 수와 증설 횟수 예시이다. (그냥 증설된 서버의 수 list로 만들면 끝나겠는 걸?)    시각게임 이용자의 수증설된 서버의 수증설 횟수0 ~ 10001 ~ 22002 ~ 33113 ~ 43104 ~ 51105 ~ 62106 ~ 70107 ~ 80008 ~ 90009 ~ 1000010 ~ 1141111 ~..

[Level 2 | Python] 완전범죄 (완탐 + 더 효율적인 코드)

https://school.programmers.co.kr/learn/courses/30/lessons/389480 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr문제A도둑이랑 B도둑이 팀을 이루어모든 물건을 훔치려고 하는데, 물건을 훔칠 때마다 각각 흔적을 남긴다. 흔적이 A,B 각각 n,m이 되면 경찰에게 발각되는데 둘 다 발각되지 않고 A가 최소한으로 흔적을 남기는 경우를 구해야 한다. (A도둑이 B도둑보다 형님인가보다..)제한 사항제한사항1 ≤ info의 길이 ≤ 40info[i]는 물건 i를 훔칠 때 생기는 흔적의 개수를 나타내며, [A에 대한 흔적 개수, B에 대한 흔적 개수]의 형태입니다.1..

[Level 3 | Python] 미로 탈출 명령어

https://school.programmers.co.kr/learn/courses/30/lessons/150365 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr문제......S.E... 왼쪽, 오른쪽, 위, 아래는 문자열 l,r,u,d 로 표현된다. 예를 들어 왼쪽 한칸, 위한칸, 왼쪽 한칸 이면 `"lul"`로 표현된다. S에서 E로 가고 싶다. 갔던 곳 중복 가능하니까 k번 움직여서 E에 딱 도착해야 한다. 가능한가? 불가능한가?가능하면 표현된 문자열에서 사전 순으로 가장 빠른 경로로 탈출해야 한다. 불가능하면 "impossible"풀이 과정처음에는 dfs로 완전탐색을 돌려서 depth 기준을 k..

[Level 2 | Python] 요격 시스템

https://school.programmers.co.kr/learn/courses/30/lessons/181188 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr문제A 나라가 B 나라에 미사일을 보낸다. 이 세계관은 2차원 공간이다. X축과 평행한 방향으로 미사일이 떨어진다. 요격 미사일은 Y축과 평행하게 날라가고 그 위치에 있는 적 미사일들을 다 요격할 수 있다. 요격해서 미사일을 안 맞을 수 있는 최소한의 요격 미사일 갯수 구하기 문제이다. 풀이 과정그리디 문제이다.x좌표를 나타내는 정수 쌍 (s,e) 형태로 주어지는데 어차피 s가 e보다 크면 같이 요격할 수 없고 요격 미사일을 하나 더 써야 한다..

[Level 2 | Python] 호텔 대실

https://school.programmers.co.kr/learn/courses/30/lessons/155651 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr문제최소한의 객실만을 사용해 예약 손님을 받아야 한다. 청소 시간으로 인해 사용 후 10분 후 다음 손님 이용이 가능하다.풀이 과정그리디 문제이다. HH:MM 형태를 모두 분 형태로 바꿔주고 대실 시작 시간을 기준으로 정렬해준다. heap에는 대실 시간이 끝나는 시간을 기준으로 최소힙을 만들어서 비교해서 answer+=1 해주면 끗 시간복잡도 계산정렬에 필요한 O(NlogN) + 힙 연산 O(NlogN) = O(NlogN) import heap..

Python 프로그래머스) 성격 유형 검사하기

성격 유형 검사하기2022 KAKAO TECH INTERNSHIPhttps://school.programmers.co.kr/learn/courses/30/lessons/118666 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.krMBTI 검사하듯이 질문에 대한 답변에 점수를 매겨서 성격 유형 검사하는 문제이다.  점수별로 성격 유형이 결정되고 점수가 같으면 사전 순으로 성격 유형을 뽑으면 된다.그래서 그냥 딕셔너리 만들 때 사전 순으로 정의점수 측정 후 예를 들어 "RT" 면 양수나 0이면 "R" 음수가 나오면 "T"def solution(survey, choi..