728x90 반응형 프로그래머스182 [프로그래머스] 로또의 최고 순위와 최저 순위 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 문제 설명 2. 풀이과정 해당 문제는 일치하는 번호의 개수와 0의 개수를 각각 구한 뒤, 0이 모두 당첨 번호일 때 최고 순위가 되고 0이 모두 당첨 번호가 아닐 때 최저 순위가 되는 것을 활용하여 해결한다. 0의 개수를 저장할 변수를 생성하고 초기화한다. zero = 0 0을 제외하고 일치하는 숫자의 개수를 저장할 변수를 생성하고 초기화한다. count = 0 구매한 로또의 번호를 하나씩 추출하며 for i in lottos 만약 추출한 번호가 0이면 0의 개수를 1 증가시킨다. if (i == 0):.. 2023. 8. 16. [프로그래머스] 단어 변환 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 문제 설명 2. 풀이과정 각 단어를 변경할 단어와 비교하여 일치하는 문자의 개수를 구해 딕셔너리로 저장한 뒤, 변경할 단어와 1글자만 달라야 해당 단어로 변경할 수 있기 때문에 변경 가능한 단어를 리스트에 따로 저장한다. 저장한 리스트가 비어있다면 변환 불가능한 경우이고 리스트가 비어있지 않다면 목표 단어가 있는지 찾는다. 목표 단어가 있다면 목표로 단어로 변경하고 없다면 아무 단어로 변경한다. 변경할 단어가 목표 단어이면 종료한다. 만약 목표 단어가 단어 집합에 없다면 if (target not in .. 2023. 8. 15. [프로그래머스] 주차 요금 계산 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 문제 설명 2. 풀이과정 요금 청구를 할 때 올림 함수 ceil()을 사용하기 위해 math 모듈을 불러온다. import math 자동차의 입차와 출차 내역을 저장할 딕셔너리를 생성한다. d = {} 각 자동차 별로 누적 주차 시간을 저장할 딕셔너리를 생성한다. minute = {} 입차와 출차 정보를 담은 정보를 하나씩 추출한다. for i in records 공백으로 각 정보가 구분되어 있기 때문에 분리하여 따로 저장해 준다. time, num, op = i.split() 시간은 다시 시와 분으로 .. 2023. 8. 14. [프로그래머스] 오픈채팅방 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 문제 설명 2. 풀이과정 해당 문제는 계속 바뀌는 이름 대신 바뀌지 않는 유저 이름을 기준으로 하여 정답을 구한 뒤, 마지막에 최종적으로 바뀌는 이름을 유저 아이디와 바꿔 문자열을 구하면 된다. 채팅방에서 유저들의 정보를 저장할 딕셔너리를 생성한다. d = {} 입력받은 기록 리스트에서 문자열을 하나씩 추출한다. for i in record 명령어는 문자열의 제일 앞 단어이고 op = i.split()[0] 유저의 아이디는 문자열의 두번째 단어이다. uid = i.split()[1] 만약 명령어가 Ent.. 2023. 8. 13. [프로그래머스] 더 맵게 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 문제 설명 2. 풀이과정 효율성 테스트에서 시간 초과가 발생하는 것을 막고 빠른 연산 수행을 위해 heap 자료구조를 사용한다. heap 자료구조를 사용하기 위해 heapq 모듈을 불러온다. import heapq 리스트 형식을 입력받아진 scoville 자료를 heap 자료구조로 바꿔준다. heapq.heapify(scoville) scoville의 제일 작은 값이 K보다 작으면 반복해야 연산을 해야 하는데 이때 제일 작은 값을 찾겠다고 min() 함수를 사용하면 시간이 많이 소모된다. 여기서 heap.. 2023. 8. 12. [프로그래머스] [3차] n진수 게임 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 문제 설명 2. 풀이과정 해당 문제는 말하는 숫자를 모두 구하여 저장하고 튜브가 말하는 순서에 맞는 숫자를 찾아 저장하면 된다. 총 저장해야 할 숫자는 (튜브가 구할 숫자의 개수 x 참가 인원) 개다. 원래 불러야 할 숫자를 해당 진법으로 바꾼 뒤 진법을 바꿔 부를 순서를 추가하는 방법으로 말해야 할 숫자를 모두 구하였다. 말하는 숫자를 모두 구해 저장할 리스트를 생성하고 처음에는 무조건 0을 불러야 하므로 0을 추가해 준다. result = [0] 원래 게임에서 다음으로 불러야 할 숫자는 1이므로 원래.. 2023. 8. 11. [프로그래머스] [1차] 다트 게임 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 문제 설명 2. 풀이과정 각 다트별 점수를 저장할 리스트를 생성한다. score = list() 다트의 점수를 저장할 변수를 생성하고 문자로 입력받기 때문에 공백으로 초기화한다. num = '' 다트 점수 문자열을 하나씩 추출한다. for i in dartResult 만약 추출한 문자가 S이면 if (i == 'S') Single이므로 다트 점수에 1 제곱 한 점수를 리스트에 추가한다. score.append(int(num) ** 1) 다음 다트 점수 저장을 위해 다트 점수는 초기화한다. num = ''.. 2023. 8. 10. [프로그래머스] 야근 지수 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 문제 설명 2. 풀이과정 해당 문제를 풀면서 유효성 검사에서 자꾸 시간 초과가 발생하였다. 하여 최댓값을 더 빠르게 찾을 수 있는 최대 힙을 활용하여 문제를 해결하였다. heap 자료구조를 사용하기 위해 heapq 모듈을 불러온다. import heapq 만약 작업의 총량이 남은 시간 안에 다 할 수 있으면 if (sum(works) 0) 최대 힙에서 최댓값을 추출하고 그 값에 1을 더한 뒤(가장 많이 남은 작업을 1시간 수행), 해당 값을 최대 힙에 추가한다. heapq.heappush(works, h.. 2023. 8. 9. [프로그래머스] [3차] 압축 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 문제 설명 2. 풀이과정 딕셔너리로 사전을 생성한다. d = {} 1부터 26까지 반복하며 for i in range(1, 27) 영문자 A부터 Z까지를 키로 하여 숫자를 저장한다. d[chr(i + 64)] = i 현재 첫 글자 위치를 저장할 변수를 생성하고 초기화한다. now = 0 현재 첫 글자가 단어의 길이를 넘어가기 전까지 반복한다. while (now < len(msg)) 문자열 길이를 저장할 변수를 생성하고 1로 초기화한다. cnt = 1 현재 단어의 마지막 글자 위치를 저장할 변수를 생성하.. 2023. 8. 8. [프로그래머스] 기사단원의 무기 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 문제 설명 2. 풀이과정 구매할 무기의 공격력을 저장할 리스트를 생성하고 최소 값인 1로 초기화한다. result = [1] * number 1은 약수가 1 자기 자신으로 1개이다. 하여 약수의 개수를 구할 필요가 없으므로 다음 숫자인 2부터 시작하여 기사단원의 수만큼 각 약수의 개수를 구한다. for i in range(2, number + 1) 각 수별로 약수를 저장할 리스트를 생성한다. li = list() 약수는 1부터 자기 자신까지 수 중에 나누어 떨어지는 수인데, 여기서 자기 자신까지 모두 확.. 2023. 8. 7. 이전 1 ··· 6 7 8 9 10 11 12 ··· 19 다음 728x90 반응형