Algorithm
-
[프로그래머스] - 줄 서는 방법Algorithm/프로그래머스 2022. 7. 19. 22:56
문제 [프로그래머스] - 줄 서는 방법 https://school.programmers.co.kr/learn/courses/30/lessons/12936?language=python3 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 이해 더보기 문제 설명 n명의 사람이 일렬로 줄을 서고 있습니다. n명의 사람들에게는 각각 1번부터 n번까지 번호가 매겨져 있습니다. n명이 사람을 줄을 서는 방법은 여러가지 방법이 있습니다. 예를 들어서 3명의 사람이 있다면 다음과 같이 6개의 방법이 있습니다. [1, 2, 3] [1, 3, 2] [2, 1, 3] [2,..
-
[프로그래머스] - [3차] 압축Algorithm/프로그래머스 2022. 7. 19. 20:45
문제 [프로그래머스] - [3차] 압축 https://school.programmers.co.kr/learn/courses/30/lessons/17684 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 이해 더보기 문제 설명 압축 신입사원 어피치는 카카오톡으로 전송되는 메시지를 압축하여 전송 효율을 높이는 업무를 맡게 되었다. 메시지를 압축하더라도 전달되는 정보가 바뀌어서는 안 되므로, 압축 전의 정보를 완벽하게 복원 가능한 무손실 압축 알고리즘을 구현하기로 했다. 어피치는 여러 압축 알고리즘 중에서 성능이 좋고 구현이 간단한 LZW(Lempel–Zi..
-
[프로그래머스] - [3차] 방금그곡Algorithm/프로그래머스 2022. 7. 17. 01:10
문제 [프로그래머스] - [3차] 방금그곡 https://school.programmers.co.kr/learn/courses/30/lessons/17683?language=python3# 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 이해 더보기 방금그곡 라디오를 자주 듣는 네오는 라디오에서 방금 나왔던 음악이 무슨 음악인지 궁금해질 때가 많다. 그럴 때 네오는 다음 포털의 '방금그곡' 서비스를 이용하곤 한다. 방금그곡에서는 TV, 라디오 등에서 나온 음악에 관해 제목 등의 정보를 제공하는 서비스이다. 네오는 자신이 기억한 멜로디를 가지고 방금그곡..
-
[프로그래머스] - [1차] 프렌즈4블록Algorithm/프로그래머스 2022. 7. 13. 16:10
[프로그래머스] - [1차] 프렌즈4블록 주소 : https://school.programmers.co.kr/learn/courses/30/lessons/17679 문제 이해 2D array 블록에서 정사각형의 2X2 블록이 모두 동일하다면, 터지고 아래로 내려오는데 이 때 터진 총 갯수 혹시나 별도의 풀이 방법이 들어갈까 생각을 하여보았지만, 별도로 생각 나는게 없어서 블록 내리기 식으로 구현하였습니다. 알고리즘 1. Maps 라는 2D array를 설정 ( 문자열보다 List index 접근 위함 ) 2. 각 블록의 경우 기준을 잡은 블록의 우측 / 아래 / 대각선 우측 아래가 동일하다면 터진다라고 접근하였습니다. 3. 바로 블록을 터뜨리기에는 동시에 터지는 경우가 발생하여, 해당 데이터를 모아둡니다..
-
[프로그래머스] - 모음사전Algorithm/프로그래머스 2022. 7. 13. 13:33
[프로그래머스] - 모음사전 https://school.programmers.co.kr/learn/courses/30/lessons/84512 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 이해 처음에 보았을 때는 알파벳 모음을 가지고 Backtracking하여 순서를 찾는 문제로 접근하였습니다. 하지만 일관성이 없어 재귀로 풀 수 없다고 생각하여 고민 끝에 매우 간단한 문제라는 것을 알았습니다. 모든 경우의 수를 정렬하면 result 결과와 동일하게 나오리라 생각이 들었습니다. 알고리즘 단어의 모든 경우의 수를 추출하기 위해서 Product Ite..
-
[Programmers] - 더 맵게Algorithm/프로그래머스 2022. 7. 7. 13:01
[Programmers] - 더 맵게 https://school.programmers.co.kr/learn/courses/30/lessons/42626?language=python3 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 모든 매운 지수들을 K이상으로 만든다. K보다 작은 값들은 2가지를 합쳐 스코빌을 높일 수 있다. 이 때 몇번만에 모든 스코빌 지수를 K보다 크게 할 수 있는가? 알고리즘 가장 작은 수들을 계속하여 합쳐야 함으로 우선순위 Queue 알고리즘을 사용하였다. Heapq를 통하여 가장 작은 숫자를 O(logN)에 뽑아내어 갱..
-
[Programmers] - 구명보트Algorithm/프로그래머스 2022. 7. 7. 12:55
[Programmers] - 구명보트 https://school.programmers.co.kr/learn/courses/30/lessons/42885 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 이해 구명보트를 최대한 적게 사용하여 많은 사람들을 나르고 싶다. 보트가 견디는 무게가 100kg 이고 사람들의 몸무게가 다음과 같다면 [70kg, 50kg, 80kg, 50kg] 50+50 / 70 / 80 위와 같은 식으로 탈 수 있는 것이다. 알고리즘 그리디 알고리즘과 투포인터를 사용하여 풀었다. 가장 큰 무게를 가진 사람이 가장 무게를 적은 사람을..
-
[BOJ] 2283번 - 구간 자르기Algorithm/BOJ 2022. 7. 6. 15:13
[BOJ] 2283번 - 구간 자르기 문제 푼 방식과 어떻게 풀었는지에 대해 설명하여 보겠습니다. 문제 링크는 다음과 같습니다. https://www.acmicpc.net/problem/2283 2283번: 구간 자르기 1번째 줄에 정수 N, K(1 ≤ N ≤ 1,000, 1 ≤ K ≤ 1,000,000,000)가 주어진다. 2~N+1번째 줄에 각 구간의 왼쪽 끝점과 오른쪽 끝점의 위치가 주어진다. 양 끝점의 위치는 0 이상 1,000,000 이하의 정수이다. www.acmicpc.net 문제 이해 처음 문제를 이해한 바로는 N 은 1000까지 K는 10억까지로써, K로 나누어질 수 있는 좌우 부분을 구하라는 문제로 이해하였습니다. 이에 따라 10억까지의 숫자 범위에서 메모리적으로 투포인터로 범위를 구하..