본문 바로가기

분류 전체보기273

[PCCP 기출문제] 2번 > 석유 시추 - Python, bfs, 누적합 https://school.programmers.co.kr/learn/courses/30/lessons/250136 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr  코드 & 풀이 from collections import dequedef solution(land): n, m = len(land), len(land[0]) visited = [[False] * m for _ in range(n)] def find_oil(i, j): direct = [(-1, 0), (1, 0), (0, -1), (0, 1)] q = deque([(i, j)]).. 2025. 2. 27.
[PCCP 기출문제] 3번 > 충돌위험 찾기 - Python, Counter https://school.programmers.co.kr/learn/courses/30/lessons/340211 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr  코드 & 풀이 from collections import Counterdef solution(points, routes): # 출발지부터 도착지까지 검사해야 됨 # 출발지에서 검사 한 번 하고 시작 or 공회전 한 번 돌리고 시작 new_routes = [] for route in routes: step = 0 x, y = points[route[0] - 1] tmp_route = .. 2025. 2. 27.
[PCCP 기출문제] 2번 > 퍼즐 게임 챌린지 - Python, binary_search(이진 탐색) https://school.programmers.co.kr/learn/courses/30/lessons/340212 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr  코드 & 풀이 def solution(diffs, times, limit): # diff level 일 경우 diff - level 번 틀리고, 틀릴 때마다 time_cur 소요 # 추가로 time_prev 만큼의 시간 추가 소요해서 이전 퍼즐을 다시 풀어야 함 # 이전 문제를 다시 풀 때는 무조건 틀리지 않음 # 다시 풀리는 데 걸리는 시간 = (한 번 틀릴 때 걸리는 시간) * 틀린 횟수 + 이전 퍼즐로 돌아가는 .. 2025. 2. 26.
알고리즘 접근 방법 1. 문제를 읽고 이해한다.2. 문제를 익숙한 용어로 재정의한다.3. 어떻게 해결할지 계획을 세운다.4. 계획을 검증한다.5. 프로그램으로 구현한다.6. 어떻게 풀었는지 돌아보고, 개선할 방법이 있는지 찾아본다. 나는 보통 계획을 세운 후(3번) 바로 구현하려고 하는데 검증하는 과정(4번)을 추가해야겠다. 작은 기능에서 시작해서 점차 키워가기 => 점진적 개선문제를 풀 수는 없더라도 해결법을 알아가는데 도움을 줌 2025. 2. 24.
Chapter 23. Debugging(디버깅) Debugging? => 오류의 근본 원인을 식별하고 이를 수정하는 과정 오류를 처음 탐지하는 과정인 테스트와는 다른 거임. OK?일부 프로젝트에서는 디버깅이 전체 개발 시간의 50%를 차지하기도 함.=> 보통 사소한 실수, 오타로 발생 23.1 Overview of Debugging Issues (디버깅 문제 개요)  Role of Debugging in Software Quality (디버깅의 소프트웨어 품질에서의 역할)디버깅은 테스트처럼 소프트웨어의 품질을 향상시키는 방법이 아니라 결함을 진단하는 방법=> 디버깅 하는 일 없도록 해라=> 어떻게? 요구사항을 신중하게 개발하고, 잘 설계하고, 고품질의 코딩 관행을 사용해서디버깅은 마지막 수단이어야 한다.  Defects as Opportunities .. 2025. 2. 23.
올바른 괄호 - C++, Stack https://school.programmers.co.kr/learn/courses/30/lessons/12909 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr  코드 & 풀이 #include #include #include using namespace std;bool solution(string s){ bool answer = true; stack c_stack; for (char c : s) { if (c == '(') { c_stack.push(c); }else { if (!c_stack.empty()) { .. 2025. 2. 22.