Algorithm 20

[백준] 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..

Algorithm 2025.06.23

[백준 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

[카카오 코테 2019 | python] 오픈 채팅방 ✅

문제 링크: https://school.programmers.co.kr/learn/courses/30/lessons/42888level22019 KAKAO BLIND RECRUITMENT Q1) 문제를 어떻게 이해하셨나요?A1) 이 문제는 채팅방에서 유저의 입장, 퇴장, 닉네임 변경 기록을 바탕으로, 최종적으로 관리자가 보게 될 메시지를 출력하는 문자열 재구성 문제입니다.Q2) 풀이 전략A2) - 각 유저의 user_id별로 최신 닉네임을 저장해야 해요. → "Change"와 "Enter" 명령에서 갱신됨 - 실제 메시지를 출력하는 건 "Enter", "Leave" 명령만 해당돼요. → 출력용 메시지는 이 명령만 기록하고, 닉네임은 나중에 넣음 - 따라서, 첫 번째 패스에서는 유저 ID 기준으로 닉네임 ..

Algorithm 2025.06.17

[카카오 코테 2022 | python] k진수에서 소수 개수 구하기

문제 링크: https://school.programmers.co.kr/learn/courses/30/lessons/92335level22022 KAKAO BLIND RECRUITMENT Q1) 문제를 어떻게 이해하셨나요?A1) 이 문제는 양의 정수 n을 k진수로 바꾼 후, 그 안에 0을 기준으로 나뉜 연속된 숫자들 중 소수인 수의 개수를 구하는 문제입니다. 여기서 주의할 점은, 10진수로 해석해서 소수인지 판단해야 한다는 점입니다.Q2) 풀이 계획A2) 먼저 n을 k진수 문자열로 변환합니다. 변환된 문자열을 '0'을 기준으로 분할합니다. 각 토큰에 대해 비어 있지 않고 10진수로 변환했을 때 소수이면 결과에 포함시킵니다. 최종적으로 소수 개수를 리턴합니다. 💡 최적화된 코드# k진수는 숫자를 k개의 ..

Algorithm 2025.06.17

[카카오 코테 2021 | python] 거리두기 확인하기

문제 링크: https://school.programmers.co.kr/learn/courses/30/lessons/81302#fn1level22021 카카오 채용연계형 인턴십 Q1) 이 문제를 어떻게 해석하셨나요?A1) 주어진 5개의 5x5 대기실에서 응시자 간의 거리두기 준수 여부를 확인하는 문제입니다. 각 자리에는 응시자(P), 빈 테이블(O), 파티션(X)이 있으며, 응시자 사이의 맨해튼 거리가 2 이하일 때 파티션이 없다면 거리두기 위반으로 간주합니다.Q2) 이 문제를 어떻게 풀 계획이신가요? A2)- 각 대기실을 2차원 배열로 탐색합니다.- 응시자(P)가 있는 위치를 기준으로, BFS 탐색을 수행해, 맨해튼 거리 ≤ 2의 위치에 있는 다른 P를 확인합니다. 그 사이에 X(파티션)이 없으면 실패..

Algorithm 2025.06.17

[카카오 코테 2018 | python] 캐시

문제 링크: https://school.programmers.co.kr/learn/courses/30/lessons/176802018 KAKAO BLIND RECRUITMENTlevel 2 Q1) 이 문제는 어떤 문제인가요?A1) 이 문제는 주어진 도시 이름들을 순차적으로 캐시에 넣으면서, LRU(Least Recently Used) 정책을 적용해 실행 시간을 계산하는 시뮬레이션 문제입니다.Q2) 이 문제를 어떻게 풀 계획이신가요?A2) 먼저 도시 이름 리스트를 순회하면서, 도시 이름을 소문자로 통일한 뒤 캐시에 있는지 확인합니다.캐시에 있으면 cache hit이므로 실행 시간 1을 더하고, 해당 도시를 가장 최근으로 갱신합니다.캐시에 없으면 cache miss이므로 실행 시간 5를 더하고, 캐시가 가득..

Algorithm 2025.06.17
728x90