Algorithm

코딩테스트 연습 - 여행경로 | 프로그래머스 스쿨 (programmers.co.kr) 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 📚 난이도 : Level 3 💡 풀이 과정 : 굉장히 시행착오가 많았던 문제... 일단 코드를 좀 더 간단하게 작성하기 위해서는 주어진 tickets배열을 객체 형태로 변환해주는 것이 편하다. (아래와 같은 형태) const graph = {}; for(const [a,b] of tickets){ if(graph[a] === undefined) { graph[a] = []; } graph[a].push(b); } 왜냐하면 배..
코딩테스트 연습 - 큰 수 만들기 | 프로그래머스 스쿨 (programmers.co.kr) 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 난이도 : Level 2 풀이 과정 : 제거하려는 수가 k개라면 제거한 후 남는 문자열 길이는 문자열.length - k 이다. 나는 제거하려는 수를 기준으로 안두고 length-k로 만들 수 있는 최대 수를 기준으로 하였다. 제거 하여 가장 큰 수가 되기 위해서는 length-k (제거후 남는 문자열 길이) 가 남는 한에서 처음으로 오는 수가 가장 커야한다. 예를들어 본 예제인 1924에서 가장 처음으로 오는 수는 9..
코딩테스트 연습 - 입국심사 | 프로그래머스 스쿨 (programmers.co.kr) 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 난이도 : Level 3 풀이과정 : 맨 처음에 이 문제를 봤을 땐 이걸 이분탐색으로 어떻게 풀어야 될지 감이 안왔는데 그 이유가 나는 n을 기준으로 time의 각 요소에 얼마를 곱해야 되는지 생각을 해서 풀이가 어려웠다. 생각을 반대로 times를 기준으로 계산한 값이 n이 될 수 있을 때를 생각을 해보면 이분탐색으로 풀 수 있구나를 생각할 수 있었다. 그 후 이분 탐색 코드를 작성하다보니 이분탐색을 위해 left = 1이..
코딩테스트 연습 - 가장 큰 수 | 프로그래머스 스쿨 (programmers.co.kr) 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 난이도 : Level 2 풀이과정 : 배열을 정렬할 때 compare함수를 어떻게 작성하는가에 대한 문제였다. 처음에는 일일히 경우의 수를 생각해서 해보다가 경우의 수가 너무 많다는 것을 알게됐고 간단한 방법으로 compare함수를 ab > ba 순으로 정렬 할 수 있도록 작성할 수 있었다. 하지만 테케 1개를 통과를 못했는데 도저히 모르겠어서 질문게시판을 보다가 답이 0일때 문자열로 처리되어 0000 이런식으로 출력되어..
코딩테스트 연습 - 가장 먼 노드 | 프로그래머스 스쿨 (programmers.co.kr) 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 난이도 : level 3 풀이 과정 : Bfs를 이용해서 푸는 문제였다. bfs만 알면 매우 간단한 문제라 js에서는 큐를 직접 구현하는 것이 핵심이다 풀다가 실수한 부분은 2차원 배열을 초기화 하는 부분에서 배열의 크기를 n+1로 안해서 계속 에러가 났엇다;; 그리고 풀고나서 다른 사람 코드를 보니 filter 함수를 이용해 이쁘게 답을 출력하던데 참고할만한 부분이었다. ps. 근데 그래프문제는 그냥 C++이 편한거 ..
코딩테스트 연습 - 베스트앨범 | 프로그래머스 스쿨 (programmers.co.kr) 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 난이도 : Level 3 풀이 과정 : 문제 자체는 별다른 알고리즘 없이 구현하는 문제라고 생각해 난이도가 쉽다고 생각했는데, 거의 1시간을 잡아먹으면서 풀었다.. 나중에 보니 level3문제 이 문제는 주어진 입력을 가지고 적절한 자료구조를 이용해 잘 정렬하여 return 해주면 되는 문제다. 배열을 이용해서 푼다면 전체 순회가 굉장히 많아지기에 성능을 생각하여 해시테이블 자료구조를 이용하였다. 문제를 풀고 남들은 어떻게..
코딩테스트 연습 - 프린터 | 프로그래머스 스쿨 (programmers.co.kr) 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 난이도 : Level 2 문제 설명 : 백준 1966번과 매우 유사한 문제다 3달 전에 낑낑대면서 풀었었는데 이번에 다시 푸니까 푸는데 굉장히 오래 걸렸다..😥 이 문제는 문제 해석이 좀 어려울 수 있는데, 문서를 순서대로 출력하는데, 우선순위를 고려해서 문서를 출력해야한다. 문서를 출력하려고 할 때 이 후 우선순위가 더 높은 문서가 있다면 현재 출력해야 하는 문서는! 프린터 큐 뒤에 들어간다. 두번째 입출력 예시를 보면 , ..
4179번: 불! (acmicpc.net) 4179번: 불! 입력의 첫째 줄에는 공백으로 구분된 두 정수 R과 C가 주어진다. 단, 1 ≤ R, C ≤ 1000 이다. R은 미로 행의 개수, C는 열의 개수이다. 다음 입력으로 R줄동안 각각의 미로 행이 주어진다. 각각의 문 www.acmicpc.net 난이도 : 골드 4 풀이 과정 : arr 배열을 선언을 해줘서 입력을 받을 때 #(벽)은 0, .(길), J(지훈)은 1, F(불)은 -1로 초기화를 시켜줬다. 나중에 다른 사람 풀이 과정을 보면 불 bfs를 돌리고 지훈이 bfs를 돌려줬는데 나는 불과 지훈이를 bfs를 동시에 돌리면서 bfs를 돌릴때 전 x, y값을 기준으로 지훈이인지 불인지를 체크하며 돌렸다. 흐름은 이렇다. 먼저 arr 초기화 과정에..
https://www.youtube.com/playlist?list=PLtqbFd2VIQv4O6D6l9HcD732hdrnYb6CY 바킹독의 실전 알고리즘 강의 코딩테스트 대비를 위한 바킹독의 실전 알고리즘 강의입니다. 블로그 URL : https://blog.encrypted.gg/category/강좌/실전%20알고리즘 www.youtube.com 1. 스택 : 선입후출 1) 성질 - 원소 추가, 삭제 : O(1) - 제일 상단 원소 확인 : O(1) - 그 외 나머지 원소 확인/변경은 원칙적으로 불가 2) 구현 해보기 const int MX = 1000005; int dat[MX]; int pos = 0; void push(int x) { dat[pos] = x; pos++; } void pop() {..
BeNI
'Algorithm' 카테고리의 글 목록