목록Algorithm (138)
REC

이번 주차는 대망의 DP다. 사실 원래 순서대로 하면 더 나중인데 어떠한 이슈로 DP를 좀 앞당겨왔다. 문제 설명 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr간단히 말하자면 n * m (ㅋㅋ) 모양의 격자가 있는데, 집은 (1,1)에 있고 학교가 (m,n)에 위치해 있다.물에 잠긴 지역을 피해 집 → 학교로 가는 최단경로의 개수를 return 해야 하는 문제.격자의 크기 m, n은 1 이상 100 이하인 자연수이고, m과 n이 모두 1인 경우는 없다.물에 잠긴 지역은 0개 이상 10개 이하이고, 집과 학교가 물에 잠긴 경우는 없다.오른쪽과 아래쪽으로만 움직일 수 있고, 최단경로의 개수를 1,000,0..
문제 설명https://www.acmicpc.net/problem/1253N개의 수 중, 어떤 수를 다른 수 두 개의 합으로 나타낼 수 있으면 그 수는 좋다. 이때 좋은 수가 몇 개인지 출력하는 문제. ex) 1,2,3,4,5,6,7,8,9,10 중 좋은 수는 3,4,5,6,7,8,9,10이다. 3 = 1 + 2, 4 = 1 + 3, ...수의 위치가 다르면 값이 같아도 다른 수로 본다.입력: 첫째 줄에는 수의 개수 N(1 ≤ N ≤ 2,000), 두 번째 줄에는 i번째 수를 나타내는 Ai가 N개 주어진다. (|Ai| ≤ 1,000,000,000, Ai는 정수)출력: 개수를 첫 번째 줄에 출력한다. 풀이 과정투 포인터 알고리즘을 사용했다.투 포인터 알고리즘이란 주로 정렬된 배열의 연속적인 구간에서 합이나..
문제 설명https://www.acmicpc.net/problem/6236 풀이 과정1. Python 풀이import sysinput = sys.stdin.readlineN, M = map(int, input().split())money = [int(input()) for _ in range(N)]min_k = max(money)max_k = sum(money)while min_k = money[i]: temp -= money[i] else: temp = K - money[i] cnt += 1 if cnt M: min_k = K + 1print(answer) 2. Swift 풀이let input = readLine..

문제 설명 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr매개변수: 코니가 가진 의상들이 담긴 2차원 문자열 배열 clothes.clothes의 각 행은 [의상의 이름, 의상의 종류]의 형식.모든 문자열의 길이는 1 이상 20 이하인 자연수이고, 알파벳 소문자 또는 '_' 로만 이루어진다.코니가 가진 의상의 수는 1개 이상 30개 이하이고, 같은 이름을 가진 의상은 존재하지 않는다.예시) [["crow_mask", "face"], ["blue_sunglasses", "face"], ["smoky_makeup", "face"]]반환: 서로 다른 옷의 조합의 수.규칙각 종류별로 최대 1가지 의상만 착용할 수..
문제 설명 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr매개변수: 전화번호를 담은 문자열 배열 phone_book반환: 어떤 번호가 다른 번호의 접두어인 경우가 있으면 False, 그렇지 않으면 True예시) ["119", "97674223", "1195524421"] 이렇게 배열이 주어지면 "119"가 "1195524421"의 접두사이기 때문에 False를 반환한다.조건: phone_book의 길이는 1 이상 1,000,000 이하, 각 전화번호의 길이는 1 이상 20 이하이다. 같은 전화번호는 없다.풀이 과정1주차 때 제대로 안 해서 벌금 왕창(...) 내고 해시를 어물쩡 넘어가버려서 해시 푸는 중..

문제 설명https://school.programmers.co.kr/learn/challenges?order=recent&partIds=58464https://school.programmers.co.kr/learn/courses/30/lessons/258712 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 2024 KAKAO WINTER INTERNSHIP에서 제일 난이도가 낮은 '가장 많이 받은 선물'을 풀어보았다. 입력: 친구들 이름이 저장되어 있는 str 배열 friends, 과거 주고받은 선물 내역이 저장되어 있는 str 배열 giftsgifts 배열의 원소는 "muzi frodo" 이런 형태로..
문제 설명 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr0 또는 양의 정수들이 배열로 주어졌을 때, 주어진 정수들을 이어붙여 만들 수 있는 가장 큰 수를 반환해야 한다. 주어진 조건은 아래와 같다.입력값 numbers의 길이는 1 이상 100,000 이하numbers의 원소는 0 이상 1,000 이하정답이 너무 클 수 있으니 문자열로 바꿔서 반환예) 입력: [6, 10, 2] / 반환: "6210"6, 10, 2를 이어붙여 만들 수 있는 수는 6102, 6210, 1062, 1026, 2106, 2610 이 있고, 이 중 가장 큰 수는 6210이다.풀이 과정일단 생각나는 접근법은 맨 앞자리 수가 가장 ..
오늘의 문제https://school.programmers.co.kr/learn/courses/30/lessons/42748 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 내 풀이def solution(array, commands): answer = [] for command in commands: # commands 하나씩 살펴보자~ i = command[0] j = command[1] k = command[2] tmp = array[i-1: j] # array의 i번째 수부터 j번째 수까지 slice tmp.sort() # 정..
문제 설명 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr이중 우선순위 큐는 다음 연산을 할 수 있는 자료구조를 말합니다.명령어해석I 숫자큐에 주어진 숫자를 삽입합니다.D 1큐에서 최댓값을 삭제합니다.D -1큐에서 최솟값을 삭제합니다.이중 우선순위 큐가 할 연산 operations가 매개변수로 주어질 때, 모든 연산을 처리한 후 큐가 비어있으면 [0,0] 비어있지 않으면 [최댓값, 최솟값]을 return 하도록 solution 함수를 구현해주세요.제한사항operations는 길이가 1 이상 1,000,000 이하인 문자열 배열입니다.operations의 원소는 큐가 수행할 연산을 나타냅니다.원소는 “명령..
오늘의 문제 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 내 풀이import heapqdef solution(scoville, K): answer = 0 heapq.heapify(scoville) while scoville[0] 그냥 문제 보고 생각난 그대로 구현했더니 1트에 통과. 쉬운 문제다. Leo는 모든 음식의 스코빌 지수가 K 이상이 될 때까지 반복하여 섞습니다. Leo가 가진 음식의 스코빌 지수를 담은 배열 scoville과 원하는 스코빌 지수 K가 주어질 때, 모든 음식의 스코빌 지수를 K 이상으로 만들기 위해 섞어야 하는 최소 횟수를 return 하도록 solution ..