목록Coding test(Python3) (178)
NIRVANA
1. 문제 2와 5로 나누어 떨어지지 않는 정수 n(1 ≤ n ≤ 10000)가 주어졌을 때, 각 자릿수가 모두 1로만 이루어진 n의 배수를 찾는 프로그램을 작성하시오. 입력입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스는 한 줄로 이루어져 있고, n이 주어진다. 출력각 자릿수가 모두 1로만 이루어진 n의 배수 중 가장 작은 수의 자리수를 출력한다. 2. 문제 풀이 주어진 n을 1로 이루어진 수(ex, 1, 11, 111, 1111) 와 나누었을 때, 나누어 떨어질 경우의 1로 이루어진 수의 자릿수를 출력하면 되는 문제이다 (왤케 어렵게 설명해논거지..) 1) num=1 로 (초깃값) 설정한다2) lengths=1로(초깃값) 설정한다3) 만약 n % num != 0 이라면 num과 l..
1. 문제 (A+B)%C는 ((A%C) + (B%C))%C 와 같을까?(A×B)%C는 ((A%C) × (B%C))%C 와 같을까?세 수 A, B, C가 주어졌을 때, 위의 네 가지 값을 구하는 프로그램을 작성하시오. 2. 문제 풀이import sysa, b, c = map(int, sys.stdin.readline().split())print((a+b)%c)print(((a%c)+(b%c))%c)print((a*b)%c)print(((a%c)*(b%c))%c)
1. 문제String형 배열 seoul의 element중 "Kim"의 위치 x를 찾아, "김서방은 x에 있다"는 String을 반환하는 함수, solution을 완성하세요. seoul에 "Kim"은 오직 한 번만 나타나며 잘못된 값이 입력되는 경우는 없습니다. 제한 사항seoul은 길이 1 이상, 1000 이하인 배열입니다.seoul의 원소는 길이 1 이상, 20 이하인 문자열입니다."Kim"은 반드시 seoul 안에 포함되어 있습니다. 2. 문제 풀이 1) for문을 사용하여 seoul 의 길이만큼 반복2) 만약 seoul의 i번째가 Kim이라면, 해당 i를 find 변수에 넣음3) format 함수를 사용하여 answer에 반환해야 하는 문구를 넣는다. def solution(seoul): an..
1. 문제 두 정수 a, b가 주어졌을 때 a와 b 사이에 속한 모든 정수의 합을 리턴하는 함수, solution을 완성하세요.예를 들어 a = 3, b = 5인 경우, 3 + 4 + 5 = 12이므로 12를 리턴합니다. 제한 조건a와 b가 같은 경우는 둘 중 아무 수나 리턴하세요.a와 b는 -10,000,000 이상 10,000,000 이하인 정수입니다.a와 b의 대소관계는 정해져있지 않습니다. 2. 문제 풀이 1) 만약 a가 b보다 크다면, b부터 a까지 i를 증가하며 a와 b 사이의 값을 더한다.2) 만약 b가 a보다 크다면, a부터 b까지 i를 증가하며 a와 b 사이의 값을 더한다. def solution(a, b): answer = 0 if a > b: for i..
1. 힙 주요 연산 힙 생성(heapify): 배열에서 힙을 생성하는 프로세스, 전체 요소 검사 → O(n) 시간 복잡도 삽입: 기존 힙에 요소를 삽입하는 과정, O(logn) 시간 복잡도 삭제: 힙의 최상위 요소 혹은 우선순위가 가장 높은 요소를 삭제한 후, 나머지 요소로 다시 힙을 생성, O(logn) 시간 복잡도 찾기(peek): 힙에서 가장 우선순위가 높은 요소를 찾는 것, 루트 노드를 찾으면 되므로 O(1) 시간 복잡도를 가짐 2. 파이썬에서 힙 구현 파이썬에서는 heapq 라이브러리를 사용하여 힙 구현 가능heapq는 최소 힙을 사용import heapq nums = [1, 3, 5, 7, 9, 2, 4, 6, 8, 0]heapq.heapify(nums)print(nums) #[0, 1..
1. 문제 자연수 n이 매개변수로 주어집니다. n을 x로 나눈 나머지가 1이 되도록 하는 가장 작은 자연수 x를 return 하도록 solution 함수를 완성해주세요. 답이 항상 존재함은 증명될 수 있습니다. 제한사항3 ≤ n ≤ 1,000,000 2. 문제 풀이 방법 10 - 1 = 912 - 1 = 117 - 1 = 6 과 같이 n을 1로 나누었을 때 나오는 몫을 소인수 분해하면, n을 x로 나눈 나머지가 1이 되도록 하는 가장 작은 자연수 x를 찾을 수 있는 것을 확인할 수 있다. 1) n-1 값이 소수인지 확인한다.2) 만약 n-1이 소수라면 바로 값을 return한다.3) n-1이 소수가 아니라면 n-1의 약수를 구한 뒤 가장 작은 약수를 반환한다. def solution(n): a..