본문 바로가기
728x90
반응형

프로그래머스/Python163

[프로그래머스] 쿼드압축 후 개수 세기 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 문제 설명 2. 풀이과정 해당 문제는 배열을 압축 가능할 때까지 나누고 압축이 가능하다면 압축한 후 최종 압축한 결과에서 0과 1의 개수를 구하는 문제이다. 배열 안의 모든 원소의 값이 동일해야 해당 배열(구간)을 압축할 수 있다. 만약 압축이 불가능하다면 4개의 균일한 정사각형 영역으로 나눈 뒤, 각 영역별로 압축을 진행한다. 배열을 입력받아 압축한 결과를 반환하는 함수를 생성한다. def check(array) 입력받은 배열의 전체 원소의 개수를 저장한다. size = sum(list(len(i) f.. 2023. 10. 18.
[프로그래머스] 전력망을 둘로 나누기 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 문제 설명 2. 풀이과정 해당 문제는 각 전력망을 하나씩 모두 끊어보며 상황별로 나눠지는 두 전력망의 개수 차이를 구하는 문제이다. 전력망을 두 그룹으로 나눴을 때 각 그룹에 있는 송전탑의 개수를 bfs 방법으로 구한다. 원래 전력망은 하나로 이어져있기 때문에 하나의 전선을 끊으면 무조건 두 그룹으로 나뉜다. 하여 한 번의 bfs으로 두 그룹의 송전탑 개수를 구할 수 있다. 두 그룹의 송전탑 개수의 차를 경우마다 저장하고 이 중 가장 작은 값을 구하면 된다. 너비우선탐색을 할 때 deque 자료구조를 사.. 2023. 10. 15.
[프로그래머스] 기지국 설치 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 문제 설명 2. 풀이과정 해당 문제는 전파를 전달해야 할 구간을 구하고 해당 구간에 최소한으로 설치할 기지국의 개수를 구여 모두 더해주면 된다. 각 구간별 설치할 기지국의 최소 개수를 구하여 더하는 결과를 반복하다가 마지막 기지국에서의 계산이 끝나 반복이 종료되면, 이후 남은 구간도 고려해야 한다. 하여 마지막에 제일 뒤쪽 남은 구간에 대한 기지국 설치 개수를 계산하여 더해주면 된다. 올림 함수인 ceil()를 사용하기 위해 math 모듈을 불러온다. import math 전파를 전달해야 할 구간의 시작.. 2023. 10. 13.
[프로그래머스] 소수 찾기 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 문제 설명 2. 풀이과정 해당 문제는 문자열로 입력된 숫자를 가지고 소수가 가능한 모든 숫자의 조합을 만든다. 모든 숫자의 조합을 구했으면 각 숫자를 하나씩 가져와 소수인지 판별한다. 모든 숫자의 조합을 만들 때는 순열(permutations) 함수를 활용해 각 자리별로 가능한 조합을 구한다. 가능한 숫자 조합을 구할 때 순열 함수를 사용하기 위해 permutations 모듈을 불러온다. from itertools import permutations 문자열로 입력받은 숫자를 개별로 모두 분리하여 리스트로.. 2023. 10. 11.
[프로그래머스] 다리를 지나는 트럭 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 문제 설명 2. 풀이과정 해당 문제는 큐 자료구조를 활용하여 트럭이 모두 건너는 최소 시간을 구하는 문제이다. deque 자료구조를 사용하여 다리의 각 칸을 만들어주고 트럭을 한 칸씩 이동하도록 구현하였다. 이때 매번 다리 위 전체 무게를 sum() 함수로 계산하면 많은 시간이 소요되므로 다리 위 전체 무게를 저장할 변수를 생성해 따로 계산해 주었다. 트럭을 다리 위로 올릴 수 있으면 출발시키고, 그렇지 않다면 앞으로 이동시키고 남은 칸은 0으로 채운다. deque 자료구조를 사용하기 위해 deque 모.. 2023. 10. 9.
[프로그래머스] 가장 큰 수 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 문제 설명 2. 풀이과정 해당 문제는 정렬과 문자열을 활용하는 문제이다. 각 숫자는 0부터 1,000까지의 수이므로 최대 4자리 수이다. 모두 다른 자리의 수가 주어진다면, 어떤 조합이 가장 큰 수가 되는지 찾는 것은 많은 시간이 소요될 것이다. 하여 모든 수를 4자리 수 이상이 되도록 변경한 뒤 앞 4자리만 비교하여 내림차순 정렬을 해준다. 최소 1자리 수부터 있으므로 수를 문자열로 바꾸어 4배하면 모든 수를 4자리 이상의 수로 만들 수 있다. 모든 수를 문자열로 바꾸고 4개를 이어붙인 문자열의 앞에서.. 2023. 10. 7.
[프로그래머스] 택배상자 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 문제 설명 2. 풀이과정 해당 문제는 컨테이너 벨트를 스택 구조로 하여 해결하면 된다. 상자를 1번부터 하나씩 불러와 우선 컨테이너 벨트에 싣는다. 그리고 컨테이너 벨트가 비거나 꺼낼 수 있는 상자가 현재 실어야 하는 상자가 아닐 때까지 반복하며 상자를 트럭에 싣는다. 컨테이너 벨트를 리스트로 생성한다. belt = [] 현재 실을 상자의 인덱스를 저장할 변수를 생성하고 초기화한다. idx = 0 상자는 1번부터 전체 실을 상자의 개수만큼 존재하므로 하나씩 불러오며 for box in range(1, l.. 2023. 10. 5.
[프로그래머스] 단속카메라 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 문제 설명 2. 풀이과정 해당 문제는 카메라를 설치할 구간을 지정해 가며 최소한으로 카메라를 설치하는 개수를 구하는 문제이다. 차량의 이동 경로에서 진입 구간이 늦은 차량부터 살펴보며 카메라를 설치할 구간을 정한다. 다음 차량의 진입 구간이 이전 차량의 진출 구간보다 전에 있다면 두 차량의 이동 경로가 겹치게 되고 겹치는 지점에 카메라를 설치하면 카메라를 최소한으로 설치할 수 있다. 차량의 이동 경로를 오름차순으로 정렬한다. routes.sort() 처음 카메라를 설치할 구간을 제일 뒷 경로의 구간으로 .. 2023. 10. 3.
[프로그래머스] 2개 이하로 다른 비트 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 문제 설명 2. 풀이과정 해당 문제는 함수에 넣을 수가 어떤 수인지에 따라 계산이 달라진다. 만약 정수가 짝수이면 무조건 2진수로 변환한 결과는 마지막 비트가 0이다. 하여 무조건 다음 수인 마지막 비트를 1로 바꾼 수가 함숫값이 된다. 하지만 정수가 홀수이면 2진수로 변환한 결과는 끝이 11이거나 01로 끝나게 된다. 하여 홀수일 경우에는 정수를 2진수의 뒤집은 결과를 구하고 앞에서부터 다음 비트와 비교하여 01이 나오면 함숫값은 두 비트를 바꾼 값이 된다. 2 = 10 → 3 = 11 | 4 = 10.. 2023. 10. 1.
[프로그래머스] 대충 만든 자판 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 문제 설명 2. 풀이과정 작성할 문자열을 하나씩 불러온다. for i in targets 해당 문자열을 입력할 수 있는지 결과를 저장할 리스트를 생성한다. result = list() 작성한 문자열을 문자 하나씩 불러온다. for j in i 각 문자를 입력할 경우를 저장할 리스트를 생성한다. li = list() 자판을 하나씩 불러오며 for k in keymap 만약 불러온 자판으로 해당 문자를 입력할 수 있으면 if (j in k) 몇 번 눌러야 하는지 결과를 저장한다. li.append(k.ind.. 2023. 9. 29.
728x90
반응형