목록알고리즘/프로그래머스 (54)
이숭간 공부기록
https://programmers.co.kr/learn/courses/30/lessons/1844 코딩테스트 연습 - 게임 맵 최단거리 [[1,0,1,1,1],[1,0,1,0,1],[1,0,1,1,1],[1,1,1,0,1],[0,0,0,0,1]] 11 [[1,0,1,1,1],[1,0,1,0,1],[1,0,1,1,1],[1,1,1,0,0],[0,0,0,0,1]] -1 programmers.co.kr 문제유형 : BFS 문제풀이 : 전형적인 BFS문제로 풀면된다. 그래프상에서 상하좌우로 이동하면서 방문전이면서 이동가능한 위치를 큐에 삽입하면서 최단거리를 갱신한다. 최단거리를 갱신할때는 count배열의 기존값과 현재값 ( 이동하기전위치값 +1 )를 비교해서 더 작은값으로 갱신 처음에 count배열의 초깃값을..
https://programmers.co.kr/learn/courses/30/lessons/42860# 코딩테스트 연습 - 조이스틱 조이스틱으로 알파벳 이름을 완성하세요. 맨 처음엔 A로만 이루어져 있습니다. ex) 완성해야 하는 이름이 세 글자면 AAA, 네 글자면 AAAA 조이스틱을 각 방향으로 움직이면 아래와 같습니다. ▲ - 다 programmers.co.kr 문제유형 : 그리디 문제풀이 : 생각보다 안풀려서 좀 애먹었다.. 나는그냥 alpha배열을 미리 만들어서 알파벳 변환의 최소비용은 쉽게 딕셔너리로 구했다. 좌우이동을 결정하는것에서 어려움을 겪었는데 이 문제가 그리디로 분류되있는 이유는, 현재지점에서 다음 A가아닌문자를 만날수있는 좌우이동중 더 작은 값을 갖는쪽으로 택해야하기 때문이다. 즉,..
https://programmers.co.kr/learn/courses/30/lessons/12985 코딩테스트 연습 - 예상 대진표 △△ 게임대회가 개최되었습니다. 이 대회는 N명이 참가하고, 토너먼트 형식으로 진행됩니다. N명의 참가자는 각각 1부터 N번을 차례대로 배정받습니다. 그리고, 1번↔2번, 3번↔4번, ... , N-1번↔N programmers.co.kr 문제유형 : 분할정복? 문제풀이 : 내가 속해있는 팀을 구한다. 걔와 나는 언제 만나는가? --> 서로 같은 팀이 될때 만난다. 두 사람이 같은 팀에 속해질때 까지 팀구하기를 반복한다. 정답코드: def solution(n,a,b): answer = 0 x = min(a,b) y = max(a,b) while True: answer +=..
https://programmers.co.kr/learn/courses/30/lessons/42885# 코딩테스트 연습 - 구명보트 무인도에 갇힌 사람들을 구명보트를 이용하여 구출하려고 합니다. 구명보트는 작아서 한 번에 최대 2명씩 밖에 탈 수 없고, 무게 제한도 있습니다. 예를 들어, 사람들의 몸무게가 [70kg, 50kg, 80kg, 5 programmers.co.kr 문제유형 : 그리디, 투포인터 문제풀이 : 가능한 최대한 많이 담아서 보내야하므로 그리디 나는 큐를 이용해서 풀었다. ( 투포인터 느낌 ) 내림차순 정렬한 큐에서 왼쪽, 즉 가장 큰값부터 (popleft) 보트에 태우고, 더이상 큰값을 태울수 없을때 큐의 오른쪽, 즉 가장 작은값부터(pop) 보트에 태워서 한번 보낼때 가장큰애들과 가..
https://programmers.co.kr/learn/courses/30/lessons/17679 코딩테스트 연습 - [1차] 프렌즈4블록 프렌즈4블록 블라인드 공채를 통과한 신입 사원 라이언은 신규 게임 개발 업무를 맡게 되었다. 이번에 출시할 게임 제목은 "프렌즈4블록". 같은 모양의 카카오프렌즈 블록이 2×2 형태로 4개가 붙 programmers.co.kr 문제유형 : 그래프(행렬다루기), 구현, 완전탐색 문제풀이 : 그래프에서 특정위치를 다루고 이런문제가 카카오에서 많이 나오는거같음 주어진 보드위에서 정사각형을 움직여가며 모두같아 없어지는경우 집합에 인덱스를 저장한다. 겹치는 구간이 있을수 있으므로 전체를 모두 확인하고 지워야하는 인덱스를 중복없이 저장하기위해 집합을 이용한다. 한 라운드에..
https://programmers.co.kr/learn/courses/30/lessons/12981 코딩테스트 연습 - 영어 끝말잇기 3 ["tank", "kick", "know", "wheel", "land", "dream", "mother", "robot", "tank"] [3,3] 5 ["hello", "observe", "effect", "take", "either", "recognize", "encourage", "ensure", "establish", "hang", "gather", "refer", "reference", "estimate", "executive"] [0,0] programmers.co.kr 문제유형 : 문자열 문제풀이: 주어진 조건을 잘 맞게 구현해야한다. 문제에서 말로 설..