본문 바로가기
728x90
반응형

분류 전체보기510

[프로그래머스] 단어 변환 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 문제 설명 2. 풀이과정 각 단어를 변경할 단어와 비교하여 일치하는 문자의 개수를 구해 딕셔너리로 저장한 뒤, 변경할 단어와 1글자만 달라야 해당 단어로 변경할 수 있기 때문에 변경 가능한 단어를 리스트에 따로 저장한다. 저장한 리스트가 비어있다면 변환 불가능한 경우이고 리스트가 비어있지 않다면 목표 단어가 있는지 찾는다. 목표 단어가 있다면 목표로 단어로 변경하고 없다면 아무 단어로 변경한다. 변경할 단어가 목표 단어이면 종료한다. 만약 목표 단어가 단어 집합에 없다면 if (target not in .. 2023. 8. 15.
[백준] 2444번 : 별 찍기 - 7 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 2444번: 별 찍기 - 7 첫째 줄부터 2×N-1번째 줄까지 차례대로 별을 출력한다. www.acmicpc.net 1. 문제 설명 2. 풀이과정 해당 문제는 별의 개수가 증가하면서 한 줄씩 찍히고, 다시 별의 개수가 감소하면서 한 줄씩 찍힌다. 각 줄은 1개부터 시작하여 2개씩 늘어나는 구조로 찍히고 한 줄에 2 * N - 1개의 별이 찍히면 반대로 2개씩 감소하는 구조로 별이 찍히게 된다. 찍히는 별의 모양은 마름모 모양으로 출력되기 때문에 각 출력되는 별은 가운데 정렬한 모양으로 찍혀야 하며, 이는 앞에 공백을 출력함으로써 해결할 수 있다. sys.stdin.readline() 함수를 사용하기 위해 sys 모듈을 불러온다. import sys 정수를 입력받는다. N = int(sys.stdin.re.. 2023. 8. 14.
[프로그래머스] 주차 요금 계산 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 문제 설명 2. 풀이과정 요금 청구를 할 때 올림 함수 ceil()을 사용하기 위해 math 모듈을 불러온다. import math 자동차의 입차와 출차 내역을 저장할 딕셔너리를 생성한다. d = {} 각 자동차 별로 누적 주차 시간을 저장할 딕셔너리를 생성한다. minute = {} 입차와 출차 정보를 담은 정보를 하나씩 추출한다. for i in records 공백으로 각 정보가 구분되어 있기 때문에 분리하여 따로 저장해 준다. time, num, op = i.split() 시간은 다시 시와 분으로 .. 2023. 8. 14.
[백준] 9461번 : 파도반 수열 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 9461번: 파도반 수열 오른쪽 그림과 같이 삼각형이 나선 모양으로 놓여져 있다. 첫 삼각형은 정삼각형으로 변의 길이는 1이다. 그 다음에는 다음과 같은 과정으로 정삼각형을 계속 추가한다. 나선에서 가장 긴 변의 www.acmicpc.net 1. 문제 설명 2. 풀이과정 해당 문제는 한가지 규칙을 찾으면 쉽게 해결할 수 있다. 삼각형의 한 변의 길이를 살펴보면 5개까지는 별 다른 규칙이 없어보이지만 6번째 삼각형의 변의 길이부터는 규칙이 생기는 것을 볼 수 있다. 바로 이전 삼각형의 한 변의 길이에 5번째 전 삼각형의 한 변의 길이를 더하면 다음 삼각형 추가되는 삼각형의 한 변의 길이가 된다. sys.stdin.readline() 함수를 사용하기 위해 sys 모듈을 불러온다. import sys 테스트 .. 2023. 8. 13.
[프로그래머스] 오픈채팅방 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 문제 설명 2. 풀이과정 해당 문제는 계속 바뀌는 이름 대신 바뀌지 않는 유저 이름을 기준으로 하여 정답을 구한 뒤, 마지막에 최종적으로 바뀌는 이름을 유저 아이디와 바꿔 문자열을 구하면 된다. 채팅방에서 유저들의 정보를 저장할 딕셔너리를 생성한다. d = {} 입력받은 기록 리스트에서 문자열을 하나씩 추출한다. for i in record 명령어는 문자열의 제일 앞 단어이고 op = i.split()[0] 유저의 아이디는 문자열의 두번째 단어이다. uid = i.split()[1] 만약 명령어가 Ent.. 2023. 8. 13.
[백준] 1158번 : 요세푸스 문제 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 1158번: 요세푸스 문제 첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 5,000) www.acmicpc.net 1. 문제 설명 2. 풀이과정 sys.stdin.readline() 함수를 사용하기 위해 sys 모듈을 불러온다. import sys popleft() 함수를 사용하기 위해 deque 자료구조를 활용했고, deque 자료구조를 사용하기 위해 deque 모듈을 불러온다. from collections import deque 인원 수와 제거할 위치를 입력받는다. N, K = map(int, sys.stdin.readline().split()) 1번부터 인원수만큼 번호를 deque 자료로 생성한다. queue = deque(list(i for i in ran.. 2023. 8. 12.
[프로그래머스] 더 맵게 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 문제 설명 2. 풀이과정 효율성 테스트에서 시간 초과가 발생하는 것을 막고 빠른 연산 수행을 위해 heap 자료구조를 사용한다. heap 자료구조를 사용하기 위해 heapq 모듈을 불러온다. import heapq 리스트 형식을 입력받아진 scoville 자료를 heap 자료구조로 바꿔준다. heapq.heapify(scoville) scoville의 제일 작은 값이 K보다 작으면 반복해야 연산을 해야 하는데 이때 제일 작은 값을 찾겠다고 min() 함수를 사용하면 시간이 많이 소모된다. 여기서 heap.. 2023. 8. 12.
[백준] 11721번 : 열 개씩 끊어 출력하기 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 11721번: 열 개씩 끊어 출력하기 첫째 줄에 단어가 주어진다. 단어는 알파벳 소문자와 대문자로만 이루어져 있으며, 길이는 100을 넘지 않는다. 길이가 0인 단어는 주어지지 않는다. www.acmicpc.net 1. 문제 설명 2. 풀이과정 sys.stdin.readline() 함수를 사용하기 위해 sys 모듈을 불러온다. import sys 문자열을 입력받는다. String = sys.stdin.readline() 시작부터 끝까지 10개씩 건너뛰면 출력할 문자열의 시작 인덱스 값을 추출한다. for i in range(0, len(String), 10) 시작 인덱스부터 10개의 문자를 문자열로 끊어 출력한다. print(String[i : i + 10]) 3. 소스코드 import sys Strin.. 2023. 8. 11.
[프로그래머스] [3차] n진수 게임 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 문제 설명 2. 풀이과정 해당 문제는 말하는 숫자를 모두 구하여 저장하고 튜브가 말하는 순서에 맞는 숫자를 찾아 저장하면 된다. 총 저장해야 할 숫자는 (튜브가 구할 숫자의 개수 x 참가 인원) 개다. 원래 불러야 할 숫자를 해당 진법으로 바꾼 뒤 진법을 바꿔 부를 순서를 추가하는 방법으로 말해야 할 숫자를 모두 구하였다. 말하는 숫자를 모두 구해 저장할 리스트를 생성하고 처음에는 무조건 0을 불러야 하므로 0을 추가해 준다. result = [0] 원래 게임에서 다음으로 불러야 할 숫자는 1이므로 원래.. 2023. 8. 11.
[백준] 10866번 : 덱 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 10866번: 덱 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net 1. 문제 설명 2. 풀이과정 sys.stdin.readline() 함수를 사용하기 위해 sys 모듈을 불러온다. import sys deque 자료구조를 구현해 보는 문제이기에 리스트 대신 deque 자료구조를 사용해 봤다. deque 자료구조를 사용하기 위해 deque 모듈을 불러온다. from collections import deque 명령의 수를 입력받는다. N = int(sys.stdin.readline()) 명령의 결과를 저장할 deq.. 2023. 8. 10.
728x90
반응형