본문 바로가기
728x90
반응형

Python437

[백준] 1712번 : 손익분기점 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 1712번: 손익분기점 월드전자는 노트북을 제조하고 판매하는 회사이다. 노트북 판매 대수에 상관없이 매년 임대료, 재산세, 보험료, 급여 등 A만원의 고정 비용이 들며, 한 대의 노트북을 생산하는 데에는 재료비와 www.acmicpc.net 1. 문제 설명 2. 풀이과정 고정 비용, 가변 비용, 노트북 가격을 입력받는다. A, B, C = map(int, input().split()) 만약 노트북 가격이 가변 비용보다 크다면 if (C - B > 0) 손익분기점을 계산하여 값을 출력한다. print(A // (C - B) + 1) 아니면 손익분기점이 존재하지 않으므로 -1을 출력한다. else: print(-1) 3. 소스코드 A, B, C = map(int, input().split()) if (C -.. 2023. 7. 3.
[프로그래머스] 같은 숫자는 싫어 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 문제 설명 2. 풀이과정 입력받은 배열의 첫 번째 값은 무조건 결과에 들어가므로 추가해 준다. answer.append(arr[0]) 정답 배열의 인덱스 값을 계산해 줄 변수를 생성하고 초기화해 준다. i = 0 입력받은 배열의 각 원소를 하나씩 추출한다. for j in arr 만약 정답 배열의 바로 이전 값이 추출한 원소와 다른 값이면 if (answer[i] != j) 정답 배열에 추출한 원소를 추가한다. answer.append(j) 그리고 원소를 추가했으므로 정답 배열의 인덱스 값을 1 증가시킨.. 2023. 7. 3.
[백준] 2941번 : 크로아티아 알파벳 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 2941번: 크로아티아 알파벳 예전에는 운영체제에서 크로아티아 알파벳을 입력할 수가 없었다. 따라서, 다음과 같이 크로아티아 알파벳을 변경해서 입력했다. 크로아티아 알파벳 변경 č c= ć c- dž dz= đ d- lj lj nj nj š s= ž z= www.acmicpc.net 1. 문제 설명 2. 풀이과정 입력받은 문자열을 하나씩 확인하며 크로아티아 알파벳을 변경하는 방법은 비효율적이고 시간이 많이 걸리며 오류가 발생하기 쉽다. 변경된 크로아티아 알파벳 결과를 미리 리스트로 만들어 저장한다. croatia = ['c=', 'c-', 'dz=', 'd-', 'lj', 'nj', 's=', 'z='] 변경된 크로아티아 알파벳으로 구성된 문자열을 입력받는다. word = input() 미리 만들어둔 변.. 2023. 7. 3.
[프로그래머스] 올바른 괄호 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 문제 설명 2. 풀이과정 자료구조 중 스택(Stack) 구조를 활용하여 해결하였다. 공백 리스트로 스택을 하나 생성한다. stack = list() 입력받은 문자열의 각 문자를 하나씩 추출한다. for i in s 만약 추출한 문자가 여는 괄호이면 스택에 문자를 추가한다. if (i == '('): stack.append(i) 반면에 추출한 문자가 닫는 괄호일 경우 else 만약 스택이 공백 상태가 아니면 스택에서 원소를 하나 제거한다. if (len(stack) > 0): stack.pop() 반면에 .. 2023. 7. 3.
[백준] 2798번 : 블랙잭 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 2798번: 블랙잭 첫째 줄에 카드의 개수 N(3 ≤ N ≤ 100)과 M(10 ≤ M ≤ 300,000)이 주어진다. 둘째 줄에는 카드에 쓰여 있는 수가 주어지며, 이 값은 100,000을 넘지 않는 양의 정수이다. 합이 M을 넘지 않는 카드 3장 www.acmicpc.net 1. 문제 설명 2. 풀이과정 sys.stdin.readline() 함수를 사용하기 위해 sys 라이브러리를 불러온다. import sys 카드 개수와 만들어야 하는 합을 입력받는다. N, M = map(int, sys.stdin.readline().split()) 각 카드에 쓰여있는 수를 입력받아 각각 리스트로 저장한다. li = list(map(int, sys.stdin.readline().split())) 카드 3장을 뽑아 .. 2023. 7. 3.
[프로그래머스] 최솟값 만들기 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 문제 설명 2. 풀이과정 어떤 두 수의 곱의 누적합이 최소가 되려면 각각 최소와 최대를 서로 곱하고 그 값을 더해주면 된다. 입력받은 매개변수 A 배열은 오름차순으로 정렬하고 A.sort() 입력받은 매개변수 B 배열은 내림차순으로 정렬합니다. B.sort() B.reverse() 두 배열의 길이는 동일하므로 배열 A의 길이만큼 덧셈을 반복한다. for i in range(len(A)) 각 배열의 동일한 위치에 있는 원소끼리 곱하여 누적합에 더해준다. answer += A[i] * B[i] 3. 소스코드.. 2023. 7. 3.
[백준] 1463번 : 1로 만들기 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 1463번: 1로 만들기 첫째 줄에 1보다 크거나 같고, 106보다 작거나 같은 정수 N이 주어진다. www.acmicpc.net 1. 문제 설명 2. 풀이과정 이 문제는 이전의 결과가 다음의 결과에 영향을 주는 문제이다. 이전의 결과를 다음의 결과에 반영하여 다음 결과를 도출하는 방식으로 구현해야 한다. 저는 입력받은 숫자까지 각 자연수의 값과 연산의 최소 횟수를 딕셔너리에 저장하고 마지막에 딕셔너리에서 입력받은 숫자의 값을 출력하도록 구현하였다. sys.stdin.readline() 함수를 사용하므로 sys 모듈을 불러온다. import sys 정수를 하나 입력받는다. N = int(sys.stdin.readline()) 딕셔너리를 하나 생성하고 1, 2, 3까지는 각각 값을 대입해 주어 초기화한다... 2023. 7. 3.
[파이썬(Python) 공부하기] 13. 딕셔너리(Dictionary) - 우당탕탕 개발자 되기 프로젝트 dictionary(딕셔너리)는 key와 value가 한 쌍을 이루어 저장된 자료로 set(세트)처럼 { }로 묶어서 나타낸 자료형입니다. dictionary도 set와 마찬가지로 순서가 없는 자료형입니다. 따라서 인덱스가 없고 그에 따라 인덱싱이 불가능하며 슬라이싱도 불가능합니다. 공백의 dictionary를 생성할 때는 { }로만 나타내어 주면 됩니다. dictionary를 어떤 값으로 초기화하여 생성할 때는 key:value 형식으로 쌍을 지어 자료를 넣어주면 됩니다. dictionary는 인덱싱과 슬라이싱이 불가능하지만 key가 있기 때문에 key로 value에 접근하는 키인덱싱이 가능합니다. 딕셔너리명[key 값] 형식으로 나타내어주면 해당 key가 가지고 있는 value의 값을 나타냅니다. 만.. 2023. 7. 3.
[백준] 5622번 : 다이얼 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 5622번: 다이얼 첫째 줄에 알파벳 대문자로 이루어진 단어가 주어진다. 단어의 길이는 2보다 크거나 같고, 15보다 작거나 같다. www.acmicpc.net 1. 문제 설명 2. 풀이과정 알파벳 대문자로만 이루어진 문자열을 입력받는다. S = input() 최소 시간을 구하기 위한 변수를 생성하고 초기화한다. time = 0 입력받은 문자열의 문자를 하나씩 추출한다. for i in S 각 문자를 아스키코드 값으로 바꿔 C인 67까지는 3을 더한다. if (ord(i) 2023. 7. 3.
[프로그래머스] 최대공약수와 최소공배수 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 문제 설명 2. 풀이과정 최대공약수는 각 수의 공약수들을 각 세트로 구한 뒤, 두 세트의 교집합 중 최댓값을 구하면 된다. 각 공약수를 저장할 세트를 생성한다. Set1 = set() Set2 = set() 각 수를 나눠줄 변수를 생성하고 1로 초기화한다. i = 1 원하는 지점에서 종료하기 위해 무한 반복문을 사용한다. while (True) 입력받은 매개변수 n의 약수를 세트에 추가한다. if (n % i == 0): Set1.add(i) 입력받은 매개변수 m의 약수를 세트에 추가한다. if (m %.. 2023. 7. 3.
728x90
반응형