Python

코딩테스트/programmers

프로그래머스 / 분할정복 / 쿼드압축 후 개수 세기

문제 https://school.programmers.co.kr/learn/courses/30/lessons/68936# 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 입출력 해설 0 과 1로 이뤄진 배열을 쿼드압축하여 [0의 개수, 1의 개수]로 리턴하여라. 쿼드압축은 다음과 같은 순서로 이뤄진다. 1. 현재 정사각형의 내부가 모두 같은 수라면 한 값으로 압축한다.2. 그렇지 않다면 4개의 균일한 정사각형으로 쪼갠다.3. 그렇지 않은 4개의 정사각형을 1번 과정부터 다시 진행한다. 이런 문제들은 분할정복 문제로 절대적인 위치가 아닌 상대적 위치로 코딩을 해줘야 한다. 일단 첫 번째로 영역의 0, 1의 개수는..

코딩테스트/programmers

프로그래머스 / 슬라이딩 윈도우 / 두 큐 합 같게 만들기

문제 https://school.programmers.co.kr/learn/courses/30/lessons/118667 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 입출력 해설 두 큐의 합을 같게 만드는 문제이다. 두 큐가 같게끔 만드는 것인데, 한 곳에서 앞을 빼고 다른 쪽 뒤에 넣어서 두 큐의 합이 같게끔 만드는 것이다. 생각한 방법은 queue1 + queue2, queue2 + queue1으로 슬라이딩 윈도우를 진행하면서한 쪽 앞에서 빼서 뒤에 넣는 것을 직접적으로 구현하는 것이 아닌 간접적으로 구현한다. 정답코드더보기''''25. 11. 12.(수)1. 하나의 길이가 30만이기 때문에, 그냥 ..

코딩테스트/programmers

프로그래머스 / 정렬 / 가장 큰 수

문제 https://school.programmers.co.kr/learn/courses/30/lessons/42746# 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 입출력 해설 0 또는 양의 정수가 주여졌을 때, 정수를 이어 붙여 만들 수 있는 가장 큰 수를 만들어라. 가장 큰 수를 만들려고 할 때, 단순하게 생각하면 주여진 수들 중 큰 수가 먼저 나와야 된다는 것을 알 수 있다.이 때 큰 수는 정수일 때 절대적으로 큰 수가 아닌, 문자열일 때 큰 수를 의미한다. 그럼 "9"라는 숫자가 먼저 나와야 되는데, "98" 과 "9"를 어떤 기준으로 어떤 수를 먼저 붙여야 될까?일단 위와 같은 상황을 토대로 생각..

코딩테스트/programmers

프로그래머스 / 비트마스킹 / 2개 이하로 다른 비트

문제 https://school.programmers.co.kr/learn/courses/30/lessons/77885# 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 입출력 해설 x가 양수일 때, x와 비트가 1 ~ 2개 다른 수 중 제일 작은 수를 구하여라. 문제를 보고 접근을 "제일 작은 수"에 초점을 맞춰서 생각을 해보자.그럼 다음 표와 같이 생각할 수 있다.xsmallest_bigger_number0112......10^1510^15 + 1 당연히 제일 작은 수는 하나 큰 수일 것이다.하지만 문제에서는 비트가 1 ~ 2개만 달라야 한다고 한다.그럼 0 -> 1, 1 -> 2이 된다. 어찌보면 + 1하..

코딩테스트/programmers

프로그래머스 / 구현 / [1차] 프렌즈4블록

문제 https://school.programmers.co.kr/learn/courses/30/lessons/17679 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 입출력 해설 짝 맞추기 게임에서 2 * 2의 크기 만큼 짝을 맞추면 되는 게임이다. 여기서 중요한 점은 연쇄적으로 터지는 것이 아니라, 동시에 터진다는 것이다.입출력에서 2 * 2 크기가 겹쳐서 터지는 부분들이 있다.이것을 유의해두고 문제 풀이를 진행하면 된다. 1. for문을 (0, 0) -> (m - 1, n - 1) 지점까지 돈다.2. 돌면서 board가 2 * 2 방향으로 같은지 확인3. 같은 짝들끼리는 동시에 없애주기4. 모든 블럭 아래..

코딩테스트/programmers

프로그래머스 / 정규표현식, 문자열 / [3차] 파일명 정렬

문제 https://school.programmers.co.kr/learn/courses/30/lessons/17686 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 입출력 해설 입력으로는 파일명들이 들어온다.파일명을 Head, Number, Tail로 자를 수 있을 때, 정렬하여 리턴하는 문제이다. 일단 Head는 숫자를 제외한 숫자들의 집합이다.Number는 문자를 제외하고 숫자만 1개에서 5개까지 갖고 있는 집합이고마지막으로 Tail은 Number를 포함하지 않는 나머지 부분들이다. 이렇게 보면 하나의 파일명은 Number를 기준으로 자를 수 있게 된다.그래서 파일명이 있을 때 숫자가 나오기 직전까지는 ..

코딩테스트/programmers

프로그래머스 / 구현 / 주차 요금 계산

문제 https://school.programmers.co.kr/learn/courses/30/lessons/92341 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 입출력 해설 주차 요금 계산하는 프로그램을 작성하는 문제이다. 주차 요금은 계산은 다음 수식과 같이 계산한다.주차 요금 = 기본 요금 + (전체시간 - 기본 요금 시간) / 단위 당 시간 * 단위 당 시간 금액 이것을 문제에서 주어진 매개변수를 통해서 표현하게 되면 다음과 같다.주차 요금 = fees[1] + (total_time - fees[0]) / fees[2] * fees[3] 위에 수식에서 total_time - fees[0] 부분이 음..

코딩테스트/programmers

프로그래머스 / DP / 숫자 변환하기

문제 https://school.programmers.co.kr/learn/courses/30/lessons/154538# 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 입출력 해설 x에서 y로 변환할 때 필요한 최소 연산 횟수를 구하는 문제이다. 해당 문제에서는 아래와 같은 3가지 연산이 가능하다.x에 n을 더한다.x에 2를 곱한다x에 3을 곱한다해당 연산들은 각각 1씩 가중치를 가진다. DP를 통한 풀이가 가능하며 DP 테이블은 다음과 같이 정의한다.DP[i] := i를 만들 때 필요한 최소 연산 횟수 DP테이블은 위에 연산을 통해서 채워나가면 된다. 정답코드더보기''''25. 10. 17.(금)1. x ..

견우직녀달
'Python' 태그의 글 목록