목록python/algorithm (11)
Matsu
문제¶ 상근이는 창고에서 링 N개를 발견했다. 상근이는 각각의 링이 앞에 있는 링과 뒤에 있는 링과 접하도록 바닥에 내려놓았다. 상근이는 첫 번째 링을 돌리기 시작했고, 나머지 링도 같이 돌아간다는 사실을 발견했다. 나머지 링은 첫 번째 링 보다 빠르게 돌아가기도 했고, 느리게 돌아가기도 했다. 이렇게 링을 돌리다 보니 첫 번째 링을 한 바퀴 돌리면, 나머지 링은 몇 바퀴 도는지 궁금해졌다. 링의 반지름이 주어진다. 이때, 첫 번째 링을 한 바퀴 돌리면, 나머지 링은 몇 바퀴 돌아가는지 구하는 프로그램을 작성하시오. 입력¶ 첫째 줄에 링의 개수 N이 주어진다. (3 ≤ N ≤ 100) 다음 줄에는 링의 반지름이 상근이가 바닥에 놓은 순서대로 주어진다. 반지름은 1과 1000를 포함하는 사이의 자연수이다...
문제¶ 정수 N이 주어졌을 때, 소인수분해하는 프로그램을 작성하시오.¶ 입력¶ 첫째 줄에 정수 N(1
https://www.acmicpc.net/problem/4344 4344번: 평균은 넘겠지 대학생 새내기들의 90%는 자신이 반에서 평균은 넘는다고 생각한다. 당신은 그들에게 슬픈 진실을 알려줘야 한다. www.acmicpc.net 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 case = int(input("케이스의 개수는? ")) for i in range(case): scores = [] count = 0 student = int(input("학생의 수는? ")) for j in range(student): score = int(input("점수를 입력하세요. ")) scores.append(score) average = sum(scores)/len(scor..
https://www.acmicpc.net/problem/10818 10818번: 최소, 최대 첫째 줄에 정수의 개수 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에는 N개의 정수를 공백으로 구분해서 주어진다. 모든 정수는 -1,000,000보다 크거나 같고, 1,000,000보다 작거나 같은 정수이다. www.acmicpc.net 1 2 3 4 5 6 7 n = int(input("몇 개의 정수를 입력할까요?")) numbers = [] for i in range(n): number = int(input("정수를 입력하세요")) numbers.append(number) print(numbers, min(numbers), max(numbers)) cs 정수 입력하는 input을 여러번 반복..
https://www.acmicpc.net/problem/10809 10809번: 알파벳 찾기 각각의 알파벳에 대해서, a가 처음 등장하는 위치, b가 처음 등장하는 위치, ... z가 처음 등장하는 위치를 공백으로 구분해서 출력한다. 만약, 어떤 알파벳이 단어에 포함되어 있지 않다면 -1을 출 www.acmicpc.net 1 2 3 4 5 6 7 8 9 def finding_alphabet(S): s = 'abcdefghijklmnopqrstuvwxyz' for i in range(26): result = S.find(s[i]) print(result) finding_alphabet("baekjoon") cs 알파벳 문자열을 저장한 s 변수를 선언하지 않고 짤 수 있는 코드는 없는지 고민이 된다.
https://www.acmicpc.net/problem/11720 11720번: 숫자의 합 첫째 줄에 숫자의 개수 N (1 ≤ N ≤ 100)이 주어진다. 둘째 줄에 숫자 N개가 공백없이 주어진다. www.acmicpc.net 1 2 3 4 5 6 7 8 9 10 def string_sum(N, s): total = 0 a = str(s) for i in range(N): total = int(a[i]) + total return total string_sum(6, 123456) cs N개의 숫자로 이루어진 s 숫자 N개의 합을 구하는 코드
https://www.acmicpc.net/problem/2869 2869번: 달팽이는 올라가고 싶다 첫째 줄에 세 정수 A, B, V가 공백으로 구분되어서 주어진다. (1 ≤ B = V 를 만족하는 가장 작은 정수 d를 찾으면 된다.
https://www.acmicpc.net/problem/1712 1712번: 손익분기점 월드전자는 노트북을 제조하고 판매하는 회사이다. 노트북 판매 대수에 상관없이 매년 임대료, 재산세, 보험료, 급여 등 A만원의 고정 비용이 들며, 한 대의 노트북을 생산하는 데에는 재료비와 www.acmicpc.net 1 2 3 4 5 6 7 8 9 10 def b_e_point(A, B, C): if B >= C: point = -1 else: point = A / (C-B) + 1 return int(point) b_e_point(2100000000, 9, 10) cs 1. 첫 접근을 잘못했다. 생산량을 1씩 더하는 반복문을 작성해 손익분기가 발생할 때 생산량을 구하려 했으나 이 방법을 사용할 경우 고정비용이 커..
https://programmers.co.kr/learn/courses/30/lessons/12903 코딩테스트 연습 - 가운데 글자 가져오기 단어 s의 가운데 글자를 반환하는 함수, solution을 만들어 보세요. 단어의 길이가 짝수라면 가운데 두글자를 반환하면 됩니다. 재한사항 s는 길이가 1 이상, 100이하인 스트링입니다. 입출력 예 s ret programmers.co.kr 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 def solution(s): length = len(s) center = int(length / 2) answer = '' if length % 2 == 0: answer = s[center-1] + s[center] else: answer = s[cente..
https://programmers.co.kr/learn/courses/30/lessons/70128 코딩테스트 연습 - 내적 길이가 같은 두 1차원 정수 배열 a, b가 매개변수로 주어집니다. a와 b의 내적을 return 하도록 solution 함수를 완성해주세요. 이때, a와 b의 내적은 a[0]*b[0] + a[1]*b[1] + ... + a[n-1]*b[n-1] 입니다. (n은 a, b의 programmers.co.kr 1 2 3 4 5 6 7 8 9 10 11 12 13 def solution(a, b): answer = 0 length = len(a) for i in range(length): answer += a[i] * b[i] return answer solution([1,2,3,4, ..