Algorithm 14

[카카오 코테 2022 | python] 주차 요금 계산

문제 링크: https://school.programmers.co.kr/learn/courses/30/lessons/92341level2 Q1) 문제를 어떻게 이해했나요?A1)입력 → fees: [기본 시간, 기본 요금, 단위 시간, 단위 요금], records: "HH:MM 차량번호 IN/OUT" 형태의 리스트 출력 → 차량 번호 오름차순으로, 각각의 최종 주차 요금 리스트 반환 규칙 → 입차 후 출차 기록이 없으면 23:59에 출차된 것으로 간주, 누적 주차 시간 계산 후: 기본시간 이하면 기본요금, 초과시간은 단위시간으로 올림 계산하여 요금 부과Q2) 문제를 어떻게 풀 예정인가요?A2)단계 1: 문자열을 분리해서 시각/차량번호/상태로 파싱단계 2: 입차 시각은 저장하고, 출차 시 총 누적 시간을 ..

Algorithm 09:16:55

[카카오 코테 2018 | python] 파일명 정렬

문제 링크: https://school.programmers.co.kr/learn/courses/30/lessons/17686level2문자, 숫자 판별 함수 Q1) 문제를 어떻게 이해했나요?A1) 파일명은 [HEAD][NUMBER][TAIL] 형태 정렬 기준은 다음과 같아요: 1. HEAD를 대소문자 구분 없이 정렬 (사전 순) 2. HEAD가 같으면 NUMBER를 정수로 비교해 정렬 3. 둘 다 같으면 입력 순서를 유지 (Stable Sort) Q2) 문제를 어떻게 풀 예정인가요?A2)1. 파일명을 HEAD, NUMBER, TAIL로 나누기2. HEAD는 소문자로 변환해서 비교3. NUMBER는 정수로 변환해서 비교4. 정렬 후 원래 문자열 반환 💫 최적화된 코드 (정규표현식 안쓰고, 하나씩 순회..

Algorithm 2025.06.23

[카카오 코테 2019 | python] 인턴십크레인 인형뽑기 게임 ✅

문제 링크: https://school.programmers.co.kr/learn/courses/30/lessons/640612019 카카오 개발자 겨울 인턴십크레인 인형뽑기 게임 Q1) 문제를 어떻게 이해했나요?A1) 크레인을 좌우로 움직이며 인형을 집어 바구니에 쌓는다. 같은 인형이 바구니에 연속으로 두 개 쌓이면 터진다. 인형이 터질 때마다 2개 사라지므로 2점을 얻는다. 인형은 가장 위에 있는 것만 집힌다.Q2) 문제를 어떻게 풀 예정인가요?A2) moves: 크레인을 몇 번째 열에서 작동시킬지 알려주는 리스트.크레인 작동 시: 해당 열의 맨 위 인형을 찾는다. 인형을 바구니(stack)에 넣는다. 바구니의 top 2개가 같으면 pop해서 사라진다 → 점수 +21. 빈 바구니(basket = []..

Algorithm 2025.06.23

[백준] Input 처리 방법

✅ 기본 구조import sysinput = sys.stdin.readline이걸 써야 백준에서 시간 초과 방지 가능해요! 📘 예제 1: 한 줄에 하나씩 숫자 여러 개 입력 받기입력 5n = int(input())print(n) # 5❗️주의: input()은 줄바꿈 제거되지만, sys.stdin.readline()은 '\n'이 포함되기 때문에 strip()을 꼭 써야 해요! 📘 예제 2: 한 줄에 숫자 여러 개 1 2 3 4 5arr = list(map(int, input().split()))print(arr) # [1, 2, 3, 4, 5] 📘 예제 3: 여러 줄 입력 (첫 줄에 개수, 이후 줄마다 숫자)3102030n = int(input())for _ in range(n): num..

[백준 15649 | python] N과 M (1) (백트레킹)

문제 링크: https://www.acmicpc.net/problem/15649백준 15649번파이썬 Q1) 문제를 어떻게 이해했나요?A1) 1부터 N까지의 수 중에서 M개를 중복 없이 뽑아서 만든 수열을 모두 출력해야 해요.Q2) 문제를 어떻게 풀 예정인가요?A2)DFS(백트래킹)을 사용해 수열을 하나씩 만들어가며 탐색합니다. 이미 선택한 숫자는 visited 배열로 중복 선택을 막습니다. 수열의 길이가 M에 도달하면 출력합니다. 사전 순 출력을 위해 숫자 1부터 N까지 오름차순 탐색을 합니다. def solution(N, M): visited = [False] * (N + 1) def dfs(path): if len(path) == M: print(' '...

Algorithm 2025.06.21

[카카오 코테 2018 | python] 비밀지도

문제 링크 : https://school.programmers.co.kr/learn/courses/30/lessons/17681level1프로그래머스Q1) 문제를 어떻게 이해했나요?A1) 주어진 두 지도를 각각 이진수 형태로 변환하고, 각 위치에서 둘 중 하나라도 벽(1)이면 전체 지도에서 벽으로 표시해야합니다.Q2) 어떤 방식으로 풀건가요?A2) OR 연산을 수행하여 둘 중 하나라도 1이면 1이 되도록 처리를 합니다. 그리고, 그 결과를 n자리의 2진수로 변환합니다.2진수 문자열에서 '1' 은 '#'으로 '0'은 ' '으로 치환하여 리스트로 반환합니다. 🔥 내 코드: 2진수를 직접 구하는 함수를 만들었음def num_to_2(n, num): result = "" while num > 0: ..

Algorithm 2025.06.19

[카카오 코테 2018 | python] [1차] 다트 게임

문제 링크: https://school.programmers.co.kr/learn/courses/30/lessons/17682level1Q1) 이 문제 어떻게 이해하셨나요?A1) 이 문제는 다트 점수를 규칙에 따라 계산한 다음 총합을 구하는 문제라고 이해했습니다. 다트는 총 3세트로 구성이 되어있고, 각 세트는 점수, 보너스, 옵션으로 구성되어있습니다.Q2) 어떻게 풀 계획인가요?A2) 우선 입력값의 문자열을 순서대로 탐색하면서 점수, 보너스, 옵션을 파싱합니다.점수를 계산한 후, 옵션에 따라 현재 점수와 이전 점수를 처리하고 마지막에 점수 리스트의 합을 반환합니다.*풀이 과정1. 먼저 문자열을 탐색하면서 점수를 뽑는데, 10은 두자리 숫자라서 예외처리를 해줘야합니다.2. 점수를 뽑았으면 그 다음 문자는..

Algorithm 2025.06.19

[카카오 코테 2023 | python] 개인정보 수집 유효기간

문제 링크: https://school.programmers.co.kr/learn/courses/30/lessons/150370level 12023 KAKAO BLIND RECRUITMENT Q1) 문제를 어떻게 이해했는지A1) 이 문제는 개인정보가 저장된 날짜와 약관 종류를 기반으로, 각 개인정보의 만료일을 계산한 뒤, 오늘 날짜 기준으로 만료되었는지를 판단해 파기해야 할 개인정보의 인덱스를 구하는 문제입니다.모든 달이 28일로 고정되어 있으므로, 날짜를 일(day) 단위로 변환해서 비교하면 됩니다.Q2) 어떤 식으로 풀건지A2) - 우선 terms를 약관종류별 유효기간을 갖는 딕셔너리로 변환합니다.- today 날짜를 총 일 수(day)로 변환합니다.- 각 privacies 항목에 대해: 수집일을 총..

Algorithm 2025.06.18

[카카오 코테 2022 | python] 양궁대회

문제 링크: https://school.programmers.co.kr/learn/courses/30/lessons/92342level22022 KAKAO BLIND RECRUITMENTQ1) 어떤 문제인가요?A1) 이 문제는 주어진 화살 수(n)만큼 라이언이 과녁에 화살을 쏠 때, 어피치와의 점수 차이를 가장 크게 만들어야 하는 문제입니다. 단순한 완전 탐색으로 모든 경우의 수를 계산하면서, 라이언이 얻을 수 있는 점수를 평가하고, 그 중 어피치를 이길 수 있는 조합 중 가장 점수 차가 큰 경우를 선택해야 합니다.Q2) 어떻게 풀 계획이신가요?A2-1)- 먼저 0~10점까지 11개의 점수에 대해 라이언이 몇 발을 쏠지 경우의 수를 모두 탐색합니다.- 각 경우에 대해 점수를 계산하며, 라이언이 이긴 경우..

Algorithm 2025.06.17

알고리즘/자료구조 기술 면접 대비 개념 정리

코딩테스트와 알고리즘 기술 면접 대비를 위한 정리(-ing) Array크기가 고정되어 있고, 연속된 메모리 공간에 데이터를 저장하며 인덱스를 통한 빠른 접근(O(1))이 가능합니다. Linked list크기가 가변적이고, 각 노드가 데이터를 포함하고 다음 노드를 가리키는 포인터를 가지는 구조로 데이터 추가 및 삭제 시 메모리를 재할당하기 때문에 속도가 느립니다. Stack한쪽 끝으로만 자료를 넣고 뺄 수 있는 자료구조로 LIFO(Last In First Out)이라고도 불립니다.인접한 노드 중 방문하지 않은 모든 노드들을 저장해두고, 가장 마지막에 넣은 노드를 꺼내서 탐색Queue한쪽 끝으로 자료를 넣고, 반대쪽에서 자료를 뺄 수 있는 선형 구조로 FIFO(First In First Out)이라고도 불립..

728x90