코딩테스트35 프로그래머스 | Python | BruteForce | 바탕화면 정리 (Lv.1) https://school.programmers.co.kr/learn/courses/30/lessons/161990 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 📌 문제 해결 접근1. 문제 요약wallpaper는 N x M 크기의 문자열 리스트로 구성됨.파일("#")이 있는 최소 범위를 포함하는 사각형을 찾아야 함.드래그 시작점 (lux, luy) → 파일이 있는 가장 위쪽/왼쪽 좌표.드래그 끝점 (rdx, rdy) → 파일이 있는 가장 (아래쪽/오른쪽 좌표) +1.2. 해결 방법파일 위치 찾기 ("#"의 좌표 저장)wallpaper를 한 줄씩 순회하며 "#"이 있는 위치의 행(x), 열(y)을 저.. 2025. 2. 18. 프로그래머스 | Python | 단순구현, Hash | 개인정보 수집 유효기간 (Lv.1) https://school.programmers.co.kr/learn/courses/30/lessons/150370 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.krdef solution(today, terms, privacies): def date_to_days(date): # 날짜를 총 일수로 변환 year, month, day = map(int, date.split(".")) return year * 12 * 28 + month * 28 + day # 오늘 날짜를 일수로 변환 today_days = date_to_days(today) # 약관.. 2025. 2. 18. 프로그래머스 | Python | 단순구현, Hash | 달리기 경주 (Lv.1) https://school.programmers.co.kr/learn/courses/30/lessons/178871 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 1. 문제 풀이 접근이 문제는 해설진이 부른 선수(callings)가 추월하면서 players 리스트의 순서를 실시간으로 변경해야 합니다.즉, 선수의 현재 등수를 빠르게 찾고, 변경하는 것이 핵심입니다.선수들의 순위를 저장할 때 list.index()를 사용하면 시간복잡도가 O(N)으로 비효율적입니다.해설진이 callings를 최대 1,000,000번 부를 수 있기 때문에, O(N) 탐색을 반복하면 최악의 경우 O(N * M) = 50,000.. 2025. 2. 18. 프로그래머스 | Python | 단순구현, Hash | 신고 결과 받기 (Lv.1) https://school.programmers.co.kr/learn/courses/30/lessons/92334 def solution(id_list, report, k): # 1. 중복 신고 제거 report_set = set(report) # 2. 신고당한 횟수를 저장하는 딕셔너리 report_count = {user: 0 for user in id_list} # 3. 신고 내역을 저장하는 딕셔너리 (set 사용으로 중복 방지) report_history = {user: set() for user in id_list} # 4. 신고 내역 처리 for entry in report_set: reporter, reported = entry.split.. 2025. 2. 13. 프로그래머스 | Python | 단순구현 | 공원 산책 (Lv.1) https://school.programmers.co.kr/learn/courses/30/lessons/172928 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 이 문제는 시뮬레이션 문제로, 주어진 경로(routes)에 따라 로봇 강아지가 이동하는 것을 구현하는 문제입니다.1️⃣ 핵심 개념 및 접근 방식격자 이동: 2차원 배열(공원 park) 내에서 이동을 시뮬레이션해야 함.조건 체크:이동할 위치가 공원을 벗어나는지 확인이동하는 경로 중 장애물('X')이 있는지 확인위 조건 중 하나라도 만족하면 해당 명령은 무시하고 다음 명령을 수행시작 지점(S) 찾기: 공원에서 S의 위치를 먼저 찾아야 함.2️⃣.. 2025. 2. 13. 프로그래머스 | Python | BruteForce, Greedy | 공원 (Lv.1) https://school.programmers.co.kr/learn/courses/30/lessons/340198 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr def solution(mats, park): H, W = len(park), len(park[0]) # 공원의 크기 mats.sort(reverse=True) # 가장 큰 돗자리부터 탐색 # 특정 위치에서 k x k 크기의 돗자리를 놓을 수 있는지 확인하는 함수 def can_place(r, c, k): if r + k > H or c + k > W: # 돗자리가 공원을 벗어나면 불가능 .. 2025. 2. 12. 이전 1 2 3 4 5 6 다음