목록전체 글 (307)
코딩하는 해맑은 거북이
해당 글은 Counter 클래스 정렬 방법 2가지를 다룬다. 1. key 정렬 2. value 정렬 (내림차순) collections 모듈 Counter 클래스 from collections import Counter 먼저 Counter 클래스를 사용하기 위해선 위와 같은 모듈에서 불러와야 한다. 1. Key 정렬 sorted 함수로 딕셔너리의 key 순으로 정렬하는 방식과 같다. key의 이름순으로 정렬된다. count = Counter('aabbbbcctttdefff') print(sorted(count.items())) [('a', 2), ('b', 4), ('c', 2), ('d', 1), ('e', 1), ('f', 3), ('t', 3)] 2. Value 정렬 most_common() 함수를 ..
해당 글은 프로그래머스 문제 '귤 고르기'를 다룬다. 문제 https://school.programmers.co.kr/learn/courses/30/lessons/138476 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 설명 파이썬에는 Counter 클래스를 불러 사용할 수 있다. 이는 리스트안에 갯수를 카운트하여 딕셔너리로 만들어준다. 이그리고 most_common() 함수를 사용해 value값을 기준으로 내림차순 정렬해준다. 이를 이용하여 같은 크기의 귤 갯수가 가장 큰 값부터 귤을 골라가며, k가 0이 될때까지 골라주면 된다. 코드 from col..
해당 글은 프로그래머스 해시문제 '폰켓몬'을 다룬다. 문제 https://school.programmers.co.kr/learn/courses/30/lessons/1845 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 설명 해당 문제는 set 함수를 통해 중복을 제거하여 리스트의 길이를 통해 쉽게 구할 수 있었다. 최대 길이와 중복을 제거한 리스트의 길이를 비교하여 답을 내면 된다. 코드 def solution(nums): max_length = len(nums)//2 set_length = len(set(nums)) print(set_length) an..
해당 글은 백준 9465번 문제 '스티커'를 다룬다. 문제 https://www.acmicpc.net/problem/9465 9465번: 스티커 첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스의 첫째 줄에는 n (1 ≤ n ≤ 100,000)이 주어진다. 다음 두 줄에는 n개의 정수가 주어지며, 각 정수는 그 위치에 해당하는 스티커의 www.acmicpc.net 설명 해당 문제는 동적 계획법으로 푸는 문제로, 임의의 한 스티커를 선택했을 때 경우의 수는 2개가 있다. 선택한 스티커의 왼쪽에 대각선(↘)을 고르기 or 한칸을 건너뛰고 대각선에 있는 값을 선택하는 경우이다. (단, 선택한 스티커의 상하좌우 제외) 이를 이용해서 스티커의 왼쪽에서 오른쪽으로 갈수록 DP를 최댓값으로 업데이트 ..
해당 글은 백준 2583번 문제 '영역 구하기'를 다룬다. 문제 https://www.acmicpc.net/problem/2583 2583번: 영역 구하기 첫째 줄에 M과 N, 그리고 K가 빈칸을 사이에 두고 차례로 주어진다. M, N, K는 모두 100 이하의 자연수이다. 둘째 줄부터 K개의 줄에는 한 줄에 하나씩 직사각형의 왼쪽 아래 꼭짓점의 x, y좌표값과 오 www.acmicpc.net 설명 해당 문제는 모눈종이가 없는 모든 행, 열을 DFS로 탐색해서 영역이 몇 개인지, 넓이는 얼마인지 출력하는 문제이다. 발생한 영역마다 넓이를 저장하는 result 변수에서 길이가 총 영역의 갯수이고, 넓이를 오름차순으로 출력해야하므로 정렬을 한 후에 순서대로 출력해줘야한다. 그리고 DFS로 풀었을 때, 런타임..
해당 글은 백준 1541번 문제 '잃어버린 괄호'을 다룬다. 문제 https://www.acmicpc.net/problem/1541 1541번: 잃어버린 괄호 첫째 줄에 식이 주어진다. 식은 ‘0’~‘9’, ‘+’, 그리고 ‘-’만으로 이루어져 있고, 가장 처음과 마지막 문자는 숫자이다. 그리고 연속해서 두 개 이상의 연산자가 나타나지 않고, 5자리보다 www.acmicpc.net 설명 해당 문제를 그리디하게 풀면 되는 문제로, 마이너스(-) 뒤에 부분을 다 빼주면 최소값을 만들 수 있다. 마이너스(-)로 split 한 리스트에서 첫번째 원소값은 마이너스를 할 수 없으므로 플러스(+)를 해주고 나머지는 마이너스(-) 해준다. 코드 s = input().split('-') result = 0 for i i..