[프로그래머스/Python] 거리두기 확인하기 lv2 - 파이썬 풀이
·
코딩테스트 준비/문제풀이
아래는 프로그래머스 lv2 문제 거리두기 확인하기 링크이다.↓ ↓ ↓ 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 문제   문제가 level2이지만 맨해튼 거리는 뭐고 뭔가 거창해(?) 보여서 살짝 쫄렸다.한번 쭉 읽고 두 번째 예제를 보니 이해가 빨리 됐다.역시 프로그래머스는 예제 설명이 친절하다.[문제 정리]- 제한 사항을 보면 주어진 그래프는 5x5 고정이다.- P의 상하좌우에 P가 있으면 거리두기 실패- P의 상하좌우에 O가 있을 때 그 O의 상하좌우에 P가 있으면 거리두기 실패 (자기 자신 제외)- X는 상관없음 이렇게 가정하고 바로 코드를 작성했는데 결과는 통과했지만 깔끔한 느낌이 없어서 ..
[프로그래머스/Python] PCCP 기출문제 1번 붕대감기 - 코딩테스트
·
코딩테스트 준비/문제풀이
프로그래머스 PCCP 기출문제 1번 붕대감기 링크는 아래에 있다. ↓  ↓  ↓  프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 프로그래머스 코딩테스트 문제는 길어 보이지만 설명을 아주아주 친절하게 잘해놓았다.문제가 이해하기 어렵진 않았지만 1초씩 증가하며 프로그램을 짜기에는 뭔가 더 좋은 방법이 있을 것 같아서 손으로 풀어봤다. 공격을 받을 때마다 한꺼번에 충전된 체력을 더해주고 공격받은 피해량을 빼주면 더 나은 코드가 될 것 같았다. 입출력 첫 번째 예시로 풀이를 해보면 2초와 9초 사이에는 공격이 없으므로 붕대를 감는 중이다.9초 때는 공격을 받기 때문에 체력을 회복할 수 없으므로 9-2에서 1초..
[프로그래머스/Python] PCCP 기출문제 3번 충돌위험 찾기 풀이
·
코딩테스트 준비/문제풀이
혼자 꽈배기처럼 꼬아서 생각해서 시간 초과가 났던 문제였다..  프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 문제 어떤 물류 센터는 로봇을 이용한 자동 운송 시스템을 운영합니다. 운송 시스템이 작동하는 규칙은 다음과 같습니다.물류 센터에는 (r, c)와 같이 2차원 좌표로 나타낼 수 있는 n개의 포인트가 존재합니다. 각 포인트는 1~n까지의 서로 다른 번호를 가집니다.로봇마다 정해진 운송 경로가 존재합니다. 운송 경로는 m개의 포인트로 구성되고 로봇은 첫 포인트에서 시작해 할당된 포인트를 순서대로 방문합니다.운송 시스템에 사용되는 로봇은 x대이고, 모든 로봇은 0초에 동시에 출발합니다. 로봇은 1초마..
[프로그래머스/파이썬] PCCP 기출문제 2번 퍼즐 게임 챌린지 - 이분탐색
·
코딩테스트 준비/문제풀이
시간복잡도 때문에 이분탐색을 써야 한다는 건 금방 알아차릴 수 있었다.(사실 아는 알고리즘이 몇개 없음 ㅎㅎ)그런데 테스트케이스 14번만 통과를 못하는...항상 반례 찾는게 미션인듯하다. 도통 모르겠어서 질문하기를 들어갔는데 이미 나와 같은 선배님들이 몇몇 있었고,퍼즐 게임 챌린지 테스트 케이스 14번 반례는 마지막에 적어놓았다. [프로그래머스 PCCP 퍼즐 게임 챌린지 링크]↓  ↓  ↓ 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr  문제 당신은 순서대로 n개의 퍼즐을 제한 시간 내에 풀어야 하는 퍼즐 게임을 하고 있습니다. 각 퍼즐은 난이도와 소요 시간이 정해져 있습니다. 당신의 숙련도에 따라 퍼..
[프로그래머스/Python] PCCP 기출문제 1번 동영상 재생기 - 파이썬
·
코딩테스트 준비/문제풀이
프로그래머스 PCCP 기출문제 1번으로 난이도는 레벨1이다.  프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 문제 당신은 동영상 재생기를 만들고 있습니다. 당신의 동영상 재생기는 10초 전으로 이동, 10초 후로 이동, 오프닝 건너뛰기 3가지 기능을 지원합니다. 각 기능이 수행하는 작업은 다음과 같습니다.10초 전으로 이동: 사용자가 "prev" 명령을 입력할 경우 동영상의 재생 위치를 현재 위치에서 10초 전으로 이동합니다. 현재 위치가 10초 미만인 경우 영상의 처음 위치로 이동합니다. 영상의 처음 위치는 0분 0초입니다.10초 후로 이동: 사용자가 "next" 명령을 입력할 경우 동영상의 재생 위..
[백준] 11404번 플로이드 워셜 알고리즘 설명 - 파이썬 with python
·
코딩테스트 준비/문제풀이
백준 11404번 문제는 제목도 플로이드, 코드도 플로이드 알고리즘을 쓰면 된다. https://www.acmicpc.net/problem/11404 문제  설명 플로이드 워셜 알고리즘의 핵심 이론은 출발지점에서 도착지점까지 최단 경로가 있을때,최단 경로 위에 경유지가 있다면 출발지점~경유지, 경유지~도착지점도 최단 경로가 된다.그래서 플로이드 워셜 점화식은 D[s][e] = min(D[s][e], D[s][k] + D[k][e]) 가 된다. 1. 출발지점과 도착지점이 같으면 0, 다르면 무한대로 초기화한다.2. 최단거리 이중리스트에 input 값을 넣어준다.3. 점화식으로 최단거리 리스트를 업데이트 한다. ※ 플로이드 워셜 알고리즘 로직은 외우도록 한다.for 경유지 k (노드갯수):     for 출..
[백준] 11657번 타임머신 | 벨만 포드 알고리즘 파이썬 Python
·
코딩테스트 준비/문제풀이
백준 11657번 타임머신 문제는 최단거리 알고리즘 중에서 벨만 포드를 써야 한다.문제에 버스 시간 C가 양수가 아닌 경우가 있기 때문에 다익스트라 알고리즘은 사용할 수 없다. 다익스트라는 가중치가 양수일 때만, 음수가 있는 경우는 벨만 포드를 쓴다. https://www.acmicpc.net/problem/11657 문제   설명 최단 거리 알고리즘(다익스트라, 벨만포드, 플로이드)의 총정리는 알고리즘 카테고리에서 다뤘으니여기선 문제에 대한 분석만 하겠다. 1. 최단 거리 리스트는 출발 노드만 0, 나머지는 무한대로 초기화한다.dist = [float('inf')] * (n+1)dist[1] = 0  2. 벨만 포드는 엣지가 중심이므로 엣지에 대한 그래프를 만든다.graph.append([start,e..
[백준] 1934번 최소공배수 - 유클리드 호제법 풀이 파이썬 Python
·
코딩테스트 준비/문제풀이
https://www.acmicpc.net/problem/1934 백준 1934번 최소공배수 문제를 풀려면 먼저유클리드 호제법 최대공약수에 대해 알아야 한다. 유클리드 호제법에 대한 세세한 내용은 알고리즘 카테고리에 기록해 놨다.  문제   풀이 자연수 A와 B가 입력되었을 때 최소공배수의 공식은 "A*B / 최대공약수"이다.아래 그림은 두 번째 케이스의 gcd(6, 10)을 구하는 방법이다.  큰 수를 작은 수로 나누는 MOD 연산을 한 후,전 단계에서의 작은 수와 결과값 나머지를 다시 MOD 연산을 한다.재귀 함수로 결과값이 0이 될 때까지 반복 수행한 후,나머지가 0이 되는 순간의 작은 수가 두 수 A, B의 최대 공약수이다. 1934번 문제는 최소 공배수를 구하는 문제이다.앞서 최소 공배수의 공식..
[백준] 1850번 최대공약수 파이썬 Python / 유클리드 호제법 풀이
·
코딩테스트 준비/문제풀이
https://www.acmicpc.net/problem/1850 프로그래밍 알고리즘으로 최대공약수를 구하는 방법이학교에서 배운 소인수 분해와 달라서 처음엔 이게 무슨 소린가 했다. 개념만 알면 MOD 연산으로 아주 쉽게 풀리는 문제였다. 유클리드 호제법 최대공약수에 대한 내용은 알고리즘 카테고리에서 자세히 다루겠다.  문제   풀이 입력 값들의 최대 공약수는 최대공약수 길이를 나타낸다.예를 들어 3과 9의 최대공약수 3은 111, 111111111의 최대공약수 111의 길이이다.  코드 import sysinput = sys.stdin.readlinea, b = map(int, input().split())def gcd(x, y): if y == 0: # y가 0이면 x가 최대공약수 ..
[백준] 1012번 유기농 배추 | 파이썬 Python 너비 우선 탐색(BFS)으로 구현
·
코딩테스트 준비/문제풀이
https://www.acmicpc.net/problem/1012 백준 1012번 유기농 배추 문제 - 너비 우선 탐색(breadth-first search)으로 풀었다.  문제   설명 문제가 길지만 간단히 말하면 섬의 개수를 구하는 문제이다.1이 상,하,좌,우로 붙어있고 0으로 둘러 싸여있으면 하나의 섬이다. 코드는 그래프를 완전 탐색해서 1이 나오면 BFS를 실행한다.BFS 내에서 섬 전체를 훑어가며 1에서 0으로 바꿔준다.너비 우선 탐색에 대해 알고 있으면 쉽게 풀리는 문제이지만혹시 이해가 안간다면 더 쉬운 백준 BFS 문제 2178번 미로 탐색을 추천한다.  [백준] 2178번 미로 탐색 / 파이썬 python 너비 우선 탐색(bfs) 구현https://www.acmicpc.net/problem..