목록알고리즘 (15)
현인
문제 요격시스템 https://school.programmers.co.kr/learn/courses/30/lessons/181188?language=javascript 소요시간 30분 풀이 계획 풀이 방법 (s,e) 구간이 여러 개 주어지는 배열을 s를 기준으로 오름차순 정렬 첫 번째 원소의 e 값을 기록 두 번째 원소 부터 순차적으로 접근 현재 타겟의 s 값이 기록된 e 값 보다 크거나 같은 경우 answer 1 증가시킨다. (새로운 구간을 발견 했기에 요격할 미사일이 하나 더 필요해짐) 기록된 e 값을 현재 타겟의 e 값으로 갱신 현재 타겟의 s 값이 기록된 e 값 보다 작은 경우 현재 타겟의 e 값이 기록된 e 값 보다 작으면 e 값을 현재 타겟의 e 값으로 갱신 (기록하고 있는 구간안에 포함되는 ..
MST(Minimum Spanning Tree) - 최소 신장 트리 Spanning Tree(신장 트리)란? 그래프 내의 모든 정점을 포함하는 트리 단, 최소 연결 그래프 형태이다. n개의 정점을 가지는 그래프에서 n-1개의 간선으로 연결된 트리이다. 하나의 그래프에는 여러 개의 신장트리가 존재한다. Minimum Spanning Tree(최소 신장 트리)란? 신장 트리 중에서 사용된 간선들의 가중치 합이 가장 작은 신장 트리 MST 구현 방법 크루스칼(Kruskal) 프림(Prim) 크루스칼 (Kruskal) 간선을 기준으로 접근한 방법 모든 간선을 가중치가 낮은 간선을 우선으로 정렬한 후에 가중치가 가장 낮은 간선부터 하나 씩 MST 집합에 추가를 한다 이 때, 사이클을 형성하는지 검사를 한다 사이클..
알고리즘 스프린트 13일차 - [프로그래머스] Lv 2. 행렬 테두리 회전하기 https://school.programmers.co.kr/learn/courses/30/lessons/77485 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 소요시간 30분 계획 풀이 배열 회전과 최솟값 구하기를 섞은 문제 정해진 구간(x1,y1,x2,y2)의 정사각형의 테두리를 시계 방향으로 한 칸씩 회전 시키고 회전한 값 중에 최솟값을 구해라 회전 결과를 계속해서 반영해야 다음 회전 안에서 최솟값이 제대로 구해지는 것을 명심한다 회전 하는 방법은 여러가지가 있으나, 내가..
알고리즘 스프린트 12일차 - [프로그래머스] Lv 2. 튜플 ( 2019 카카오 개발자 겨울 인턴십 ) https://school.programmers.co.kr/learn/courses/30/lessons/64065 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 소요시간 40분 계획 풀이 문자열 다루기 문제 일단 스플릿을 해야되는데 ‘,’ 기준으로 단순히 스플릿을 할 수 없다 직접 문자열 처음부터 반복하면서 알맞게 잘라내줬다 원본 튜플은 어떻게 찾을까? 원본 튜플의 부분집합들이 주어지니까 가장 많이 등장하는 원소가 가장 앞 원소임을 알 수 있다 등장 ..
알고리즘 스프린트 11일차 - [프로그래머스] Lv 3. 코딩테스트 연습 https://school.programmers.co.kr/learn/courses/30/lessons/118668 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 소요시간 2시간.. 계획 접근법을 조금 일찍 떠올렸더라면, 더 빨리 풀 수 있었을텐데 조금 아쉽다. 히든 케이스가 있어서 거기서도 조금 애를 먹었다. 풀이 dp[i][j] 로 알고력이 i, 코딩력이 j가 되기까지 걸리는 시간을 적을 것이다. now_alp, now_cop 가 현재 알고력과 코딩력이라 생각하고 next_alp..
알고리즘 스프린트 10일차 - [프로그래머스] Lv 3. 징검다리 건너기 https://school.programmers.co.kr/learn/courses/30/lessons/64062 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 소요시간 1시간 20분 고민했지만 풀이 실패.. 계획 징검 다리 문제만 보면 DP가 떠올라서 습관적으로 DP로 접근했는데, 범위가 20만 제곱인 걸 간과했다. DFS도 뭐 될리가 없지만 풀이가 떠오르지 않아서 DFS 백트래킹으로 해봤지만 어림도 없었다 풀이 나의 풀이는 아니지만 chatGPT에게 물어보니 이분 탐색을 활용하면..
알고리즘 스프린트 9일차 - [프로그래머스] Lv 2. 멀쩡한 사각형 https://school.programmers.co.kr/learn/courses/30/lessons/87946 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 소요시간 15분.. 계획 풀이 DFS check 배열과 k값을 감소시키면서 탐색했다 반복문으로 모든 던전 돌면서 현재 피로도로 들어갈 수 있는지 탐색했던 곳은 아닌지 확인한다 두 조건 다 만족할 경우 다음 깊이로 들어간다 결과 코드 더보기 var answer = 0; function solution(k, dungeons) { l..
알고리즘 스프린트 8일차 - [프로그래머스] Lv 2. 멀쩡한 사각형 https://school.programmers.co.kr/learn/courses/30/lessons/62048 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 소요시간 1시간 문제 접근 방식은 빨리 찾았지만 자료형 처리가 난관이었다... 계획 어떻게 풀까 고민을 하면서 수학적으로 접근하면 좋을 것 같다는 생각이 들었고, 일차 방정식을 활용한 풀이가 떠올랐다 풀이 answer에 전체 영역의 넓이를 저장한다 대각선을 1차 방정식으로 보고 기울기를 w/h로 구한다 방정식의 치역의 범위를 계..
알고리즘 스프린트 7일차 - [프로그래머스] Lv 2. 조이스틱 https://school.programmers.co.kr/learn/courses/30/lessons/42860 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 소요시간 1시간 10분 계획 풀이 이름의 각 알파벳을 A에서의 거리로 치환한다 유니코드 값을 이용한 계산을 활용한다 좌,우 양방향으로 A가 아닌 곳을 탐색한다 이름의 길이가 20을 넘지 않았기에 재귀로 탐색 가능할 것이라 판단했다. DFS를 활용하여 탐색하였다 A가 아닌 지점을 모두 탐색하였을 때를 기저조건으로 정한다 기저조건에 해당..
알고리즘 스프린트 6일차 - [프로그래머스] Lv 2. 양궁대회 (카카오 기출) https://school.programmers.co.kr/learn/courses/30/lessons/92342?language=javascript 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 소요시간 1시간 40분... 문제 접근 실수 + 디버깅 으로 날린 시간 1시간 계획 처음에 브루트 포스로 가능한지 판단하는데 안될 거라고 판단해서 다른 방법 찾다가 다시 생각해보니 브루트 포스가 가능한 문제였다.....ㅠㅠ 풀이 10점 부터 0점까지 화살 n개로 표현할 수 있는 모든..