Algorithm/Problem Solving
-
[ PS ] 공원 산책Algorithm/Problem Solving 2023. 11. 16. 02:02
https://school.programmers.co.kr/learn/courses/30/lessons/172928 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 프로그래머스 LV2 리코쳇 로봇 하위 호환 문제이다. 한 방향으로 쭉 이동하는 코드 포맷은 익히면 좋을 것 같다. 이전에는 시작 지점을 2중 for문으로 탐색했었는데, includes와 indexOf를 사용해봤다. const solution = (park, routes) => { const H = park.length; const W = park[0].length; const dy = [-1, ..
-
[ PS ] 프로그래머스 LV2 리코쳇 로봇Algorithm/Problem Solving 2023. 7. 5. 11:20
https://school.programmers.co.kr/learn/courses/30/lessons/169199 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 이 게임에서 말의 움직임은 상, 하, 좌, 우 4방향 중 하나를 선택해서 게임판 위의 장애물이나 맨 끝에 부딪힐 때까지 미끄러져 이동하는 것을 한 번의 이동으로 칩니다. 문제 조건 중에서 장애물이나 맨 끝에 부딪힐 때까지 미끄러져 이동하는 것을 한 번의 이동으로 계산한다. BFS 템플릿에서 장애물이나 맨 끝에 부딪힐 때까지 While문으로 직진하는 부분이 응용된 문제이다. - Javascript..
-
[Javascript] 백준 1987 알파벳Algorithm/Problem Solving 2023. 3. 9. 14:12
https://www.acmicpc.net/problem/1987 1987번: 알파벳 세로 R칸, 가로 C칸으로 된 표 모양의 보드가 있다. 보드의 각 칸에는 대문자 알파벳이 하나씩 적혀 있고, 좌측 상단 칸 (1행 1열) 에는 말이 놓여 있다. 말은 상하좌우로 인접한 네 칸 중의 한 칸으 www.acmicpc.net 전형적인 DFS 문제이다. 조금 응용된 부분은 DFS 함수 인자에 지금까지의 알파벳을 set에 담아서 넘겨준다는 점이 있다. let input = require('fs').readFileSync(__dirname+'/example.txt').toString().trim().split('\n'); let count = 0; const [N, M] = input[count++].split(' ..
-
[Javascript] 프로그래머스 LV2 귤 고르기Algorithm/Problem Solving 2022. 11. 24. 19:34
https://school.programmers.co.kr/learn/courses/30/lessons/138476 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 파악 한 상자에 k개의 귤을 담는다. 귤을 크기별로 분류했을 때 한 상자에 서로 다른 종류의 수를 최소화하고 싶다. 문제 해결 흐름 객체를 사용하여 입력 값으로 주어진 귤들을 크기 별로 분류한다. let dir = {};// 사용할 객체 // 입력으로 주어진 배열 : tangerine을 map으로 순회한다. tangerine.map(e => { if(!dir[e]){ dir[e] = 1 }..
-
[Javascript][Python] 프로그래머스 LV2 큰 수 만들기Algorithm/Problem Solving 2022. 11. 15. 12:28
https://school.programmers.co.kr/learn/courses/30/lessons/42883 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr - 문제 파악 1. 입력으로 주어진 숫자에서 k개의 수를 제거했을 때 얻을 수 있는 가장 큰 수를 구한다. - 문제 해결 흐름 1. 입력으로 주어진 숫자의 범위가 매우 크므로 모든 경우의 수를 조합하는 풀이는 아닐 것이다. 2. 스택 자료구조를 사용하여 주어진 숫자를 순회하며 스택의 마지막 요소와 순회 중인 숫자를 비교한다. 3. 스택의 마지막 요소가 더 클 경우 순회 중인 숫자를 스택에 삽입 4..
-
[Python] 프로그래머스LV2 타겟 넘버Algorithm/Problem Solving 2022. 11. 1. 11:55
https://school.programmers.co.kr/learn/courses/30/lessons/43165 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr - 문제 파악 1. 연산자는 오직 덧셈과 뺄셈만 있다. 2. 주어진 정수들을 덧셈과 뺄셈을 활용하여 계산했을 때 타겟 넘버 만드는 방법의 수를 return한다. - 문제 해결 흐름 1. +와 -로 주어진 정수들과 조합할 수 있는 경우의 수를 구한다. 조합을 구하는 문제는 백준 사이트에서 N과M 시리즈를 익혀 놓으면 도움이 많이 된다. def combination(crnt_list, numbers,..
-
[Python] 2021 KAKAO BLIND RECRUITMENT 메뉴 리뉴얼Algorithm/Problem Solving 2022. 10. 28. 12:29
https://school.programmers.co.kr/learn/courses/30/lessons/72411?language=python3 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr - 문제 파악 메뉴는 최소 2가지 이상의 단품메뉴로 구성한다. 최소 2명 이상의 손님으로부터 주문된 단품메뉴 조합에 대해서만 코스요리 메뉴 후보에 포함한다. 코스요리 메뉴의 구성을 문자열 형식으로 배열에 담아 사전순으로 오름차순 정렬하여 return한다. 배열의 각 요소들 또한 알파벳 오름차순으로 정렬된다. - 문제 해결 흐름 1. course 배열의 원소를 순회하며..
-
[Javascript][Python] 프로그래머스 LV2 멀리 뛰기Algorithm/Problem Solving 2022. 10. 28. 10:46
https://school.programmers.co.kr/learn/courses/30/lessons/12914 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr - 문제 파악 한 번에 1칸 또는 2칸 이동 가능하다. n칸까지 이동할 수 있는 방법의 개수를 return - 문제 해결 흐름 전형적인 dynamic programming의 bottom-up 방식 유형의 풀이로 해결가능한 문제다. 문제에서 제시한 조건 중 1칸과 2칸 이동으로 제한이 되어 있기 때문에 4번 째 칸까지 이동하기 위해서 올 수 있는 방법은 - 3번째 칸에서 한 칸 이동하여 4번 째 칸..