프로그래머스 < 요격 시스템 > JavaScript
·
✏️ Study/⚙️ 알고리즘 & 자료구조
📍문제 링크 https://school.programmers.co.kr/learn/courses/30/lessons/181188 📍알고리즘 분류 - 그리디 📍문제 풀이 [시작 좌표, 종료 좌표] 가 배열로 주어진다 const targets = [ [4, 5], [4, 8], [10, 14], [11, 13], [5, 12], [3, 7], [1, 4], ]; 이 좌표들을 선으로 그었을 때, 모든 수평선을 수직으로 가로지르는데 필요한 최소한의 수직선의 갯수를 구하면 된다. 그림으로 나타내면, 아래처럼 표현할 수 있는데, 겹치지 않는 수평선이 총 3개 이므로, 최소 3개의 수직선이 필요하다. 겹치지 않는 수평선인지 아닌지를 빠르게 파악하려면, 모든 좌표들을 종료지점을 기준으로 오름차순 정렬한 후, 순서대로 ..
백준 18230 < 2xN 예쁜 타일링 > JavaScript
·
✏️ Study/⚙️ 알고리즘 & 자료구조
📍문제 링크 https://www.acmicpc.net/problem/18230 18230번: 2xN 예쁜 타일링 첫째 줄에 정수 N, A, B(1 ≤ N, A, B ≤ 2000, 2 × B + A ≥ N)가 공백으로 구분되어 주어진다. 둘째 줄에 각 2×1 크기 타일의 예쁨을 의미하는 정수 A개가 공백으로 구분되어 주어진다. 셋째 줄에 각 2× www.acmicpc.net 📍알고리즘 분류 - 그리디 알고리즘 - 정렬 📍문제 풀이 2 * 1 타일과 2 * 2 타일에 점수가 있을 때, 정해진 공간 N에 타일을 깔며 점수 최대값을 획득하는 문제 각 타일 배열을 오름차순으로 정렬하여 pop으로 꺼내서 사용 (성능을 위해) 2 * 1 타일 2개의 점수와 2 * 2 타일 1개의 점수를 비교하여 큰 쪽을 사용 N ..
Python에서 lambda로 배열을 특정 기준으로 정렬하기
·
✏️ Study/🐍 Python
📍문제 링크 https://www.acmicpc.net/problem/1339 1339번: 단어 수학 첫째 줄에 단어의 개수 N(1 ≤ N ≤ 10)이 주어진다. 둘째 줄부터 N개의 줄에 단어가 한 줄에 하나씩 주어진다. 단어는 알파벳 대문자로만 이루어져있다. 모든 단어에 포함되어 있는 알파벳은 최대 www.acmicpc.net 📍알고리즘 분류 - 그리디 📍문제 풀이 대문자로 구성된 문자열 리스트가 주어질 때, 문자열의 각 알파벳에 0 ~ 9 까지의 수를 하나 할당해서 숫자로 변환하고, 이를 모두 더한 최댓값을 구하라 자릿수가 높고 > 많이 등장 하는 순서로 9, 8, 7 .. 을 배정하면 된다 딕셔너리를 만들고, 문자열을 하나씩 순회하면서 해당 알파벳에 자릿수를 더한다 - 예를 들어 ABC 문자열이 있..
백준 11497 < 통나무 건너뛰기 > JavaScript
·
✏️ Study/⚙️ 알고리즘 & 자료구조
📍문제 링크 https://www.acmicpc.net/problem/11497 11497번: 통나무 건너뛰기 남규는 통나무를 세워 놓고 건너뛰기를 좋아한다. 그래서 N개의 통나무를 원형으로 세워 놓고 뛰어놀려고 한다. 남규는 원형으로 인접한 옆 통나무로 건너뛰는데, 이때 각 인접한 통나무의 높이 www.acmicpc.net 📍알고리즘 분류 - 그리디 - 정렬 📍문제 풀이 수열이 주어진다. 인접한 수 끼리의 차가 최소가 되도록 배열을 섞을 수 있을 때, 그 차를 구하라 예를 들어 정렬된 수열 10, 10, 11, 11, 12, 12, 13 이 주어질 때, - 인덱스를 0 1 2 3 4 5 6 이라고 할 수 있다 오름차순으로 양 끝단부터 배치하게 되면 아래처럼 배치할 수 있다 (정렬된 배열이므로 크기가 정..
백준 2057 < 팩토리얼 분해 > JavaScript
·
✏️ Study/⚙️ 알고리즘 & 자료구조
📍문제 링크 https://www.acmicpc.net/problem/2057 2057번: 팩토리얼 분해 음 아닌 정수 N이 주어졌을 때, 이 수를 서로 다른 정수 M(M ≥ 1)개의 팩토리얼의 합으로 나타낼 수 있는지 알아내는 프로그램을 작성하시오. 예를 들어 2=0!+1!로 나타낼 수 있지만, 5는 이와 같은 www.acmicpc.net 📍알고리즘 분류 - 수학 - 그리디 - 브루트포스 📍문제 풀이 주어진 수 N이 서로 다른 팩토리얼의 합으로 나타낼 수 있는지 묻는 문제 그리디 알고리즘의 전형적인 문제같다 N의 범위가 매우 크므로 (0 ≤ N ≤ 1,000,000,000,000,000,000) BigInt 로 감싸줘야 한다! 0! = 1 1! = 1 임을 유의하자 📍의사 코드 1. N보다 작은 X! ..