본문 바로가기
728x90
반응형

분류 전체보기510

[프로그래머스] k진수에서 소수 개수 구하기 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 문제 설명 2. 풀이과정 소수 판별을 할 때 반복을 줄이기 위해 해당 수의 제곱근까지만 반복하는데 이때 sqrt() 함수를 사용하기 위해 math 모듈을 불러온다. import math 해당 수를 해당 진법으로 바꾼 결과를 저장할 리스트를 생성한다. result = list() 해당 수가 0이 되기 전까지 반복하며 while (n > 0) 해당 수를 진법으로 나눈 나머지를 문자열 형태로 추가하고 result.append(str(n % k)) 해당 수를 진법으로 나눈 몫의 결과로 다시 저장한다. n //=.. 2023. 8. 5.
[백준] 2309번 : 일곱 난쟁이 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 2309번: 일곱 난쟁이 아홉 개의 줄에 걸쳐 난쟁이들의 키가 주어진다. 주어지는 키는 100을 넘지 않는 자연수이며, 아홉 난쟁이의 키는 모두 다르며, 가능한 정답이 여러 가지인 경우에는 아무거나 출력한다. www.acmicpc.net 1. 문제 설명 2. 풀이과정 해당 문제는 9명 중 일곱 난쟁이가 될 수 있는 모든 경우를 구하고 각 경우마다 키의 합이 100이 되는지 확인하면 해결할 수 있다. sys.stdin.readline() 함수를 사용하기 위해 sys 모듈을 불러온다. import sys 조합 함수인 combinations() 함수를 사용하기 위해 combinations 모듈을 불러온다. from itertools import combinations 난쟁이들의 키를 저장할 리스트를 생성한다... 2023. 8. 4.
[프로그래머스] 최고의 집합 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 문제 설명 2. 풀이과정 해당 문제는 각 집합을 구하고 해당 집합에서 원소의 곱이 최고인 집합을 구하면 된다. 여기서 각 원소의 곱이 최대이려면 각 원소의 크기가 최대한 서로 비슷해야 한다. 하여 각 원소의 값은 우선 구하고자 하는 합을 원소의 개수로 나눈 몫의 결과를 우선 저장하고 만약 그 합이 원하는 합의 값보다 작을 수 있으므로 각 원소에 합을 원소의 개수로 나눈 나머지만큼 분배하여 더해주면 해당 집합이 최고의 집합이 된다. 만약 자연수 개수가 원소의 합보다 크면 if (n > s) 제일 작은 자연.. 2023. 8. 4.
[백준] 4153번 : 직각삼각형 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 4153번: 직각삼각형 입력은 여러개의 테스트케이스로 주어지며 마지막줄에는 0 0 0이 입력된다. 각 테스트케이스는 모두 30,000보다 작은 양의 정수로 주어지며, 각 입력은 변의 길이를 의미한다. www.acmicpc.net 1. 문제 설명 2. 풀이과정 sys.stdin.readline() 함수를 사용하기 위해 sys 모듈을 불러온다. import sys 0 0 0을 입력받을 때 멈추기 위해 무한 반목문을 사용한다. while (True) 삼각형의 세 변의 길이를 입력받아 리스트로 저장한다. li = list(map(int, sys.stdin.readline().split())) 만약 0의 개수가 3개이면 0 0 0을 입력받은 경우이므로 종료한다. if (li.count(0) == 3): break.. 2023. 8. 3.
[프로그래머스] 전화번호 목록 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 문제 설명 2. 풀이과정 해당 문제는 전화번호가 다른 전화번호의 접두사가 되는지 판별하는 문제입니다. 접두사가 되려면 전화번호의 앞 문자부터 일치해야 합니다. 하여 전화번호를 문자열 형태로 정렬하게 되면 1~9를 사전정렬하듯 오름차순으로 정렬됩니다. 정렬한 전화번호를 앞에서부터 해당 전화번호의 다음 전화번호와 비교하여 접두사인지 아닌지를 판별하면 되는데 여기서 다음 전화번호 하나만 비교하면 되는 이유는 전화번호를 문자열 형태로 정렬했기 때문입니다. 문자열 형태로 정렬했기 때문에 뒤 전화번호는 이전 전화번.. 2023. 8. 3.
[백준] 1874번 : 스택 수열 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 1874번: 스택 수열 1부터 n까지에 수에 대해 차례로 [push, push, push, push, pop, pop, push, push, pop, push, push, pop, pop, pop, pop, pop] 연산을 수행하면 수열 [4, 3, 6, 8, 7, 5, 2, 1]을 얻을 수 있다. www.acmicpc.net 1. 문제 설명 2. 풀이과정 sys.stdin.readline() 함수를 사용하기 위해 sys 모듈을 불러온다. import sys 수열의 범위를 입력받는다. T = int(sys.stdin.readline()) 현재 수열의 마지막 값을 저장할 변수를 생성하고 수열의 시작값인 1로 초기화한다. count = 1 수열을 만들 수 있는지 없는지 확인할 변수를 생성하고 True로 초기.. 2023. 8. 2.
[프로그래머스] 덧칠하기 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 문제 설명 2. 풀이과정 현재 벽의 상태를 저장할 변수를 만들고 True로 초기화한다. result = [True] * n 칠해야 하는 구역의 번호를 하나씩 추출하여 for i in section 해당 구역을 칠하지 않은 것으로 변경한다. result[i - 1] = False 칠해야 하는 구역의 번호를 하나씩 추출하여 for i in section 만약 해당 구역이 아직 칠해지지 않았다면 if (not result[i - 1]) 칠해야 하므로 칠하는 횟수를 1 증가시킨다. answer += 1 그리고 .. 2023. 8. 2.
[백준] 11651번 : 좌표 정렬하기 2 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 11651번: 좌표 정렬하기 2 첫째 줄에 점의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개의 줄에는 i번점의 위치 xi와 yi가 주어진다. (-100,000 ≤ xi, yi ≤ 100,000) 좌표는 항상 정수이고, 위치가 같은 두 점은 없다. www.acmicpc.net 1. 문제 설명 2. 풀이과정 sys.stdin.readline() 함수를 사용하기 위해 sys 모듈을 불러온다. import sys 점의 개수를 입력받는다. N = int(sys.stdin.readline()) 각 점의 x좌표와 y좌표를 저장할 리스트를 생성한다. li = list() 점의 개수만큼 반복하며 for _ in range(N) 각 점의 x좌표와 y좌표를 입력받아 리스트로 저장한다. li.app.. 2023. 8. 1.
[프로그래머스] 실패율 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 문제 설명 2. 풀이과정 해당 문제는 각 스테이지 별로 실패하는 사람의 수를 세어 현재 스테이지 별 남은 사람의 수를 나눠주면 실패율을 구할 수 있다. 구한 실패율을 각각 저장하고 실패율을 기준으로 내림차순으로 정렬하여 해당 스테이지 번호를 출력하면 된다. 처음 사용자의 수를 저장한다. size = len(stages) 각 스테이지별로 실패율을 저장할 딕셔너리를 생성한다. d = {} 각 스테이지 번호를 하나씩 지정하여 for i in range(1, N + 1) 만약 해당 스테이지를 실패하는 사람이 없.. 2023. 8. 1.
[백준] 15649번 : N과 M (1) - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 15649번: N과 M (1) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net 1. 문제 설명 2. 풀이과정 해당 문제는 1부터 N까지 수 중, M개를 뽑아 나열하는 것과 동일하다. 하여 permutations() 함수를 활용하여 순열의 결과를 저장하고 이를 하나씩 출력하면 되는 문제이다. sys.stdin.readline() 함수를 사용하기 위해 sys 모듈을 불러온다. import sys permutations() 함수를 사용하기 위해 permutstions 모듈을 불러온다. from itertools import permutation.. 2023. 7. 31.
728x90
반응형