본문 바로가기
728x90
반응형

프로그래머스/Python163

[프로그래머스] 2 x n 타일링 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 문제 설명 2. 풀이과정 해당 문제를 처음에 모든 경우마다 팩토리얼로 총경우의 수를 구했는데 시간초과 문제가 발생하였다. 하여 이전 결과를 활용하는 DP 알고리즘으로 해결하였다. 처음 n이 0일 때는 1가지, 1일 때는 1가지이다. 다음 n이 2일 때는 2가지, 3일 때는 3가지, 4일 때는 5가지로 증가한다. 결과를 나열해 보면 1-1-2-3-5-... 의 결과가 나오는데 이를 자세히 보면 다음 결과는 이전 결과와 그전 결과를 더한 결과가 된다. 1, 1, 1+1=2, 1+2=3, 2+3=5의 결과로 .. 2023. 9. 27.
[프로그래머스] 숫자 게임 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 문제 설명 2. 풀이과정 해당 문제는 최대로 많은 승리를 하여 최대 승점이 얼마인지 구하는 문제이다. 최대한 많이 승리하려면 작은 숫자를 작은 숫자로 이겨야 한다. 하여 두 팀의 숫자를 오름차순으로 정렬한 뒤, A 팀의 최솟값을 기준으로 B 팀의 숫자를 최솟값부터 비교하며 승리한다면 A 팀의 숫자를 제거하고 이를 B 팀의 마지막 숫자까지 반복하며 승리의 횟수를 계산한다. B 팀의 숫자가 뒤로 넘어갔다는 의미는 현재 A 팀의 최솟값보다 작거나 같다는 의미이므로 A 팀의 숫자가 제거되고 다음 A 팀의 최솟값.. 2023. 9. 25.
[프로그래머스] 문자열 나누기 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 문제 설명 2. 풀이과정 해당 문제는 문자열을 계속해서 첫 글자와 비교해 분리하고 그 개수를 구하는 문제이다. 문자열을 분리할 때마다 기준이 되는 첫 글자가 바뀌므로 deque 자료구조를 사용하여 문자를 제거하면서 분리하였다. 문자열을 deque 자료구조로 만들어서 제거하며 문자열을 분리하려고 하므로 deque 모듈을 불러온다. from collections import deque 입력받은 문자열을 deque 자료구조로 변경한다. s = deque(list(s)) 분리한 문자열을 저장할 리스트를 생성한다.. 2023. 9. 23.
[프로그래머스] 숫자 변환하기 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 문제 설명 2. 풀이과정 해당 문제는 한 숫자의 다음 변환 결과가 총 3가지가 존재하므로 해당 경우의 결과를 전부 계산하고 그 값을 다음 계산에서 사용해야 한다. 처음에 deque 자료구조를 활용한 너비우선탐색 방법으로 해결해보려고 하였으나 몇몇 테스트에서 시간초과가 발생하였다. 하여 중복되는 계산을 최대한 없애려고 하였고 값을 저장하는 방식 list와 set으로 바꿔주었다. 계산 결과를 저장할 2차원 리스트를 생성하고 초기 0행의 값은 x로 한다. li = [[x]] 원하는 지점에서 종료하기 위해 무한.. 2023. 9. 21.
[프로그래머스] 완주하지 못한 선수 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 문제 설명 2. 풀이과정 해당 문제는 참여자 명단에서 완주한 사람을 제거하고 남은 한 명의 이름을 구하는 문제이다. 처음에 참여자 명단에서 완주한 사람을 제거하는 방식으로 해결해보려고 했지만 유효성 검사에서 시간초과가 발생했다. 하여 문제의 분류처럼 해시를 이용하여 해결할 수 있는 방법을 생각했고 딕셔너리를 활용하였다. 참여자 명단을 저장할 딕셔너리를 생성한다. d = {} 참여자 명단을 한 명씩 불러오며 for i in participant 만약 동명이인이면 사람 수를 증가시킨다. if (i in d).. 2023. 9. 19.
[프로그래머스] 롤케이크 자르기 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 문제 설명 2. 풀이과정 해당 문제는 롤케이크를 잘랐을 때, 두 조각의 토핑의 종류 개수가 동일한지 판단해야 하는 문제이다. 인덱싱을 사용하여 계속적으로 슬라이싱 한 결과를 set로 바꾸어 토핑 종료의 개수를 판단해 보았지만 시간초과를 해결할 수 없었다. 하여 한 번에 set로 저장하는 방법을 생각해 보았다. 한 명은 처음에 케이크의 전체를 가지고 시작하며 나머지 한 명에게 하나씩 토핑을 주며 두 케이크의 조각 위 토핑의 종류 개수를 비교하고 일치하는 개수를 세어주는 방식으로 시간초과를 해결하였다. 한 .. 2023. 9. 17.
[프로그래머스] 체육복 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 문제 설명 2. 풀이과정 해당 문제는 체육복이 있는지 확인하고 체육복이 있는 학생의 수를 세어주면 된다. 여벌의 체육복을 가져온 학생이 도난당했을 경우 본인의 여벌 체육복을 입어야 하므로 해당 경우를 먼저 고려해줘야 한다. 이후 이전 학생에게 우선적으로 체육복을 빌려주도록 해결하기 위해 여벌의 체육복을 가져온 학생들을 오름차순으로 정렬하고 체육복을 빌려준다. 전체 학생들의 체육복 여부를 저장할 리스트를 생성한다. 이때 학생 번호를 인덱스로 사용하기 위해 0번 인덱스를 제외한 크기가 학생 수가 되도록 생성.. 2023. 9. 15.
[프로그래머스] [1차] 프렌즈4블록 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 문제 설명 2. 풀이과정 해당 문제는 먼저 제거될 수 있는 블록의 위치와 개수를 파악하고 해당 위치의 블록을 제거한다. 이후 제거된 블록의 자리를 위의 블록이 내려와 채우게 된다. 블록이 채워질 때는 아래에서부터 빈자리를 파악하여 블록을 채워주면 된다. deque 자료구조를 사용하기 위해 deque 모듈을 불러온다. from collections import deque 블록의 위치를 저장해 줄 그래프를 생성하고 graph = list() for _ in range(m): graph.append([0] *.. 2023. 9. 13.
[프로그래머스] [3차] 파일명 정렬 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 문제 설명 2. 풀이과정 해당 문제는 파일명을 head, number, tail 부분으로 나누어 head를 기준으로 정렬하고 동일하면 number을 기준으로 정렬하며, number 부분도 동일하면 입력받은 파일명의 순서를 기준으로 정렬한 결과를 구하는 문제이다. 리스트를 정렬할 때는 이전 정렬한 결과를 가지고 다음 정렬이 이루어지므로 정렬 순서를 거꾸로 생각해야 한다. 또한 head 부분은 대소문자가 구분이 없고, number 부분은 숫자로 생각하여 오름차순 정렬해야 한다. 파일명을 나눈 결과를 저장할 .. 2023. 9. 11.
[프로그래머스] 등굣길 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 문제 설명 2. 풀이과정 해당 문제는 물에 잠긴 부분을 알려주는 행렬의 x좌표와 y좌표가 바뀌어 주어진다는 것을 알아야 한다. 나와있는 예제가 [[2, 2]]로 나와있어 파악하기 힘들었다. 하여 지도를 만들고 물에 잠긴 위치인치 판단할 때는 x좌표와 y좌표를 바꾸어 생각해줘야 한다. 그리고 지도의 인덱스 값을 그대로 좌표의 값으로 계산하기 위해 0행과 0열을 0으로 초기화하여 추가해 주는데, 이것은 다음 위치의 경우의 수를 계산할 때 따로 고려해주지 않아도 된다는 편리함이 있다. 지도를 나타내줄 리스트를.. 2023. 9. 3.
728x90
반응형