목록이코테_문제풀기_python (4)
코딩 기록들

구현하기 어려운 문제? - 알고리즘은 간단한데 코드가 너무 길어지는 문제 - 특정소수점까지 출력하는 문제 - 문자열이 입력으로 주어질때 한문자단위로 끊어서 리스트에 넣어야하는 문제(파싱) 구현시 고려해야하는 메모리 제약사항 - c / c++ 에는 제약이 많지만, 파이썬에서는 매우큰수의 연산또한 기본으로 지원한다. (다만, 파이썬에서의 실수형변수는 다른언어와 마찬가지로 유효숫자에따라 연산결과가 원하는값이 나오지않을수도 있다) 파이썬에서 리스트 크기 - 파이썬에서 여러개의 변수를 사용할떄는 리스트를 이용한다. 주의사항 : 코딩테스트의 메모리제한 데이터 개수 (리스트 길이) 메모리 사용량 1.000 약 4KB 1.000.000 약 4MB 10.000.000 약 40MB 주의할점 : 리스트를 여러개 선언했을떄,..
어떠한수 N 이 1이 될때까지 아래의 두 과정중 하나를 반복적으로 선택하여 수행한다 1. N에서 1을 뺀다 2. N을 K로 나눈다. (단, n이 k로 나누어떨어질때만 선택할수있다) 문제 : N과 K가 주어질때 N이 1이 될때까지 위의과정을 수행해야하는 최소횟수를 구하는 프로그램 작성 입력조건 : 첫째줄에 N과 K 가 공백으로 구분되며 각각 자연수로 주어지고, N > K 입력예시 25 5 출력예시 2 접근방법 > 최대한 많이 나눈다! n, k = map(int, input().split()) count = 0 while (n != 1): if(n % k == 0): n = n//k else: n -= 1 count += 1 print(count) (책 풀이) n, k = map(int, input().sp..
카드들이 N * M 형태로 놓여있을때, 게임의 룰에 맞게 카드를 뽑는 프로그램을 만들어보자. (여러개의 숫자카드중에서 가장높은 숫자가 쓰인 카드한장을 뽑는 게임 ) 게임의 룰 숫자가 쓰인 카드들이 N * M 형태로 놓여있다. (N=행의 개수, M=열의 개수) 먼저 뽑고자하는 카드가 포함되어있는 행을 선택한다 그다음 선택된 행에 포함된 카드들중 가장 숫자가 낮은 카드를 뽑아야함 따라서, 처음에 카드를 골라낼 행을 선택할때, 이후에 해당행에서 가장 숫자가 낮은 카드를 뽑을것을 고려하여 최종적으로 가장 높은 숫자의 카드를 뽑을수있도록 전략을 세워야 한다 입력 첫째줄에 숫자카드들이 놓인 행의개수 N과, 열의개수M이 공백을 기준으로 각각 자연수로 주어진다. 둘째줄부터 N개의 줄에걸쳐 각 카드에 적힌 숫자가 주어진..
다양한 수로 이루어진 배열 : N 숫자가 더해지는 횟수 : M 연속해서 K 번 초과해서 더해질수 없음 (단, 배열에서 서로 다른 인덱스에 해당하는 같은 숫자는 서로 다른것으로 간주) 입력조건 첫째줄에 N, M, K의 자연수가 주어지고, 각 자연수는 공백으로 구분 둘째줄에 N 개의 자연수가 주어진다 입력으로 주어지는 K는 항상 M 보다 작거나같다 출력조건 첫째줄에 큰수의 법칙에따라 더해진 답을 출력한다 입력예시 5 8 3 2 4 5 4 6 출력예시 46 파이썬 표현법 알아둘것들 A를 B로 나눴을때 몫 구하는 표현 : int(A/B) 아니면 A // B N개의 수를 공백으로 구분하여 입력받기 : data = list(map(int, input().split())) n, m, k 를 공백으로 구분하여 입력받기..