목록Python (110)
REC
안녕하세요.시간이 없으니 바로 Let's go문제 설명https://www.acmicpc.net/problem/3079여행을 갔답니다.사람은 M명, 입국심사대는 N개입니다.k번 심사대의 심사관의 심사 시간은 Tk입니다.예를 들어, 두 심사대가 있고, 심사를 하는데 걸리는 시간이 각각 7초와 10초라고 하자. 줄에 서 있는 사람이 6명이라면, 가장 첫 두 사람은 즉시 심사를 받으러 가게 된다. 7초가 되었을 때, 첫 번째 심사대는 비어있게 되고, 세 번째 사람이 그곳으로 이동해서 심사를 받으면 된다. 10초가 되는 순간, 네 번째 사람이 이곳으로 이동해서 심사를 받으면 되고, 14초가 되었을 때는 다섯 번째 사람이 첫 번째 심사대로 이동해서 심사를 받으면 된다. 20초가 되었을 때, 두 번째 심사대가 비어..
이번 주차는 DFS/BFS입니다. DP 말고 차라리 이걸 저번 주에 하는 게 나았을지도...유형은 너무 익숙하지만 맨날 까먹어서 (머릿속에 남아 있는 건 visited 뿐) 이번엔 꼭 정복해 보겠습니다. 문제 설명https://www.acmicpc.net/problem/2606 하나의 컴이 바이러스에 걸리면 네트워크 상 그 컴과 연결된 모든 컴이 바이러스에 걸리게 된다.1번 컴을 통해 바이러스에 걸리게 되는 컴의 수를 출력해야 한다. -> 1번 컴은 제외된다.입력컴퓨터의 수 N (0 네트워크 상에서 연결되어 있는 컴퓨터 쌍의 수 M한 쌍씩 연결돼 있는 컴퓨터 번호 쌍 u, v풀이 과정N = int(input())M = int(input())graph = [[] for _ in range(N+1)]# 감염..
문제 설명 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 풀이 과정def solution(triangle): for i in range(1, len(triangle)): for j in range(len(triangle[i])): if i > 1 and j != 0 and j != len(triangle[i-1]): triangle[i][j] += max(triangle[i-1][j-1], triangle[i-1][j]) elif j == 0: triangle[i][j] += triangle[..

이번 주차는 대망의 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/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() # 정..