전체 글

Alogorithm/programmers

[programmers] Lv2 미로 탈출 - Python

https://school.programmers.co.kr/learn/courses/30/lessons/159993 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr - BFS로 문제를 해결했다. - 레버를 거쳐가야 출구에 있는 문을 열 수 있기 때문에 출구에서 레버로, 레버에서 출구로 가는 최단거리를 구한다. - 이때 두 가지 경우 중 한 가지라도 목적지에 도달하지 못하는 경우 -1을 return 한다. from collections import deque def solution(maps): n, m = len(maps), len(maps[0]) dy = ..

Alogorithm/programmers

[programmers] Lv3 표 병합 - Python

코딩테스트 연습 - 표 병합 | 프로그래머스 스쿨 (programmers.co.kr) 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr - Union - find를 이용해 문제를 해결했다. - 사실 union - find가 잘 기억나지 않아 찾아보았다. 그리고 2차원 배열에서는 적용해 본 적이 없어 다른 사람의 풀이를 참고해보기도 했다. - 같이 스터디하시는 분 중 한분께서 51 x 51의 2차원 배열을 51을 제곱한 값인 2601의 길이를 가진 1차원 배열로 하여 문제를 해결했다. 표 편집이라 해서 2차원으로 체크를 해야 한다는 생각에 갇힌 것 같다. 알고..

Alogorithm/programmers

[programmers] Lv2 게임 맵 최단거리 - Python

코딩테스트 연습 - 게임 맵 최단거리 | 프로그래머스 스쿨 (programmers.co.kr) 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr - 기본적인 BFS/DFS문제이다. def bfs(maze, n, m): visited = [[0] * m for _ in range(n)] q = [] q.append([0, 0]) visited[0][0] = 1 dy = [-1, 1, 0, 0] dx = [0, 0, -1, 1] while q: st = q.pop(0) for k in range(4): i, j = st[0] + dy[k], st[1] + dx[..

Alogorithm/programmers

[programmers] Lv2 과제 진행하기 - Python & Java

코딩테스트 연습 - 과제 진행하기 | 프로그래머스 스쿨 (programmers.co.kr) 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr - 정렬 + 스택을 이용했다. - 처음에는 스택의 마지막과 현재 정보랑 비교해서 하는 식으로 진행하려 했으나 잘되지 않아 시간의 흐르면서 스택의 마지막에 있는 과제를 진행하는 방식으로 바꿨다. - 먼저, 입력 받는 값의 시간을 분으로 바꿔준다. 플레이 시간도 int 값으로 변환 후 새로 list에 저장한다. 이때 시간을 key로 하고 나머지를 value로 하는 시간 체크용 dict도 만들어 준다. - 과제 시작 시간으로..

Alogorithm/programmers

[programmers] Lv2 시소 짝꿍 - Python

https://school.programmers.co.kr/learn/courses/30/lessons/152996 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr - Counter를 이용해 몸무게에 따른 사람 수를 체크한다. - 거리에 따른 비율 list 생성한다. 이때 1 이하인 비율은 확인하지 않는다. 그 이유는 나라는 기준점에서는 1 이하 일 수 있지만 시소 반대편 사람기준에서는 역수가 되어 1보다 커지기 때문이다. 그래서 중복으로 체크할 필요가 없다. - 몸무게를 순회하면서 확인한다. 이때 같은 몸무게가 2명 이상이면 같은 몸무게가 같은 경우의수도..

Alogorithm/BAEKJOON

[BAEKJOON] 23290 마법사 상어와 복제 - Python

https://www.acmicpc.net/problem/23290 23290번: 마법사 상어와 복제 첫째 줄에 물고기의 수 M, 상어가 마법을 연습한 횟수 S가 주어진다. 둘째 줄부터 M개의 줄에는 물고기의 정보 fx, fy, d가 주어진다. (fx, fy)는 물고기의 위치를 의미하고, d는 방향을 의미한다. 방향 www.acmicpc.net - 어디가 틀렸는지 몰라서 헤맨 탓에 3시간 넘게 걸렸다. 단계 별로 조건에 맞는 값이 나오는지 확인 후 넘어가는 습관을 들이자. - 2차원 리스트를 이용하여 풀이를 진행했지만, 이전에 포스팅했던 파이어볼 문제처럼 dict를 이용한다면 제출 시 시간을 더 단축할 수 있을 것이다. 코드를 참고하고 싶다면 해당 문제에서 맞힌사람 → 언어: Python에서 2등이신 분..

Alogorithm/programmers

[programmers] Lv2 택배 배달과 수거하기 - Python

코딩테스트 연습 - 택배 배달과 수거하기 | 프로그래머스 스쿨 (programmers.co.kr) 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr - Greedy 문제로 이 문제에서는 먼 곳부터 배달, 수거를 하는 방식으로 진행했다. - pop을 이용해 배달, 수거를 해야할 가장 먼 집들을 찾는다. - 물류창고에서 배달 or 수거를 하고 다시 돌아와야 하기 때문에 answer에는 왕복거리를 계산하기 위해 *2를 하며, 배달 or 수거 중 먼거리를 수행한다. - 배달과 수거의 경우를 나누어 아래 코드와 같이 체크하면서 연산을 진행했다. def solution..

Alogorithm/programmers

[programmers] Lv2 이모티콘 할인행사 - Python

코딩테스트 연습 - 이모티콘 할인행사 | 프로그래머스 스쿨 (programmers.co.kr) 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr - 문제에서 주어진 이모티콘의 할인율을 가지고 이모티콘 할인하는 모든 경우의 수를 만들어서 체크를 했다. - 이때 할인율은 개별적인 것이기 때문에 중복순열(itertools의 product)을 이용해 풀이를 진행했다. - 이모티콘들의 할인율에 대하여 모든 경우를 체크한다. - 모든 경우를 다 체크한 후, 주어진 조건 1, 2를 기준으로 answer을 정렬한 뒤 가장 조건에 부합하는 0번 index의 값을 return..

Alogorithm/BAEKJOON

[BAEJOON] 21611 마법사 상어와 블리자드 - Python

https://www.acmicpc.net/problem/21611 21611번: 마법사 상어와 블리자드 마법사 상어는 파이어볼, 토네이도, 파이어스톰, 물복사버그, 비바라기 마법을 할 수 있다. 오늘 새로 배운 마법은 블리자드이고, 크기가 N×N인 격자에서 연습하려고 한다. N은 항상 홀수이고, ( www.acmicpc.net - 특별한 알고리즘이 필요하지 않았지만 틀린 부분 찾느라 시간을 많이 소비했다. - 문제에서 주어진 조건을 순서대로 구현하면 된다. - 채우는 것을 매번해줘야 하기 때문에 미리 좌표를 구해놓고 시작했다. 상어를 기준으로 문제에서 주어진 달팽이 형태의 이동경로를 따라 좌표를 list에 넣어주었다. - 먼저 블리자드로 구슬 파괴를 하는데 이때 파괴도 폭파에 포함인 줄 알고 같이 카운..

Alogorithm/programmers

[programmers] Lv2 숫자 변환하기 - Python

코딩테스트 연습 - 숫자 변환하기 | 프로그래머스 스쿨 (programmers.co.kr) 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr - Dynamic Programming 중 Memoization을 이용한 풀이 - 초기 값(횟수)을 넣어주고 dp 테이블 생성 후 for문으로 탐색 - 이때 생성되지 않는 값은 pass - 주어진 조건으로 연산된 값이 되는 index에서의 연산 횟수와 연산 전 값에서 연산 횟수 +1 중 최솟값을 갱신하는 방식으로 진행 → dp[idx+n] = min(dp[idx+n], dp[idx]+1) def solution(x, y..

Dorobo
'분류 전체보기' 카테고리의 글 목록 (3 Page)