본문 바로가기

코딩 테스트

(65)
[프로그래머스 코딩 테스트] 코딩 테스트 공부 - KAKAO TECH INTERNSHIP 코딩 테스트 공부 문제 설명 알고력과 코딩력의 초기값을 가지고 입력으로 들어오는 문제들의 힘을 빌려 그 초기값을 높이고, 최종에는 입력으로 들어온 모든 문제를 풀 수 있는 알고력과 코딩력 값을 가지게 만들면 된다. 이때, 문제를 푼 최소 횟수를 리턴해 주는 코드를 짜야 한다. 문제 풀이 이번 문제는 생각할 거리가 많아서 코딩을 짜는 데에도 쉽게 손이 가지 않았다. 요구되는 알고력과 코딩력이 가장 낮은 문제를 풀 수 있는 능력치까지 올리는 데에 걸리는 시간(능력 +1 당 시간 +1) 그 다음 문제를 풀기 위해 요구되는 알고력과 코딩력을 갖추기 위한 방법 -> +1 당 시간 +1 or 이전 문제 풀이 위 두 가지 방법을 고려하여 코드를 짜야 하는데, 딕셔너리로 바꾸어 써야 하는지, 리스트를 그대로 써야 하는..
[프로그래머스 코딩 테스트] 두 큐 합 같게 만들기 - KAKAO TECH INTERNSHIP 두 큐 합 같게 만들기 문제 설명 귀찮으니 간단하게만 설명하자면... 두 개의 숫자 리스트가 들어오는데, 그 숫자 리스트들의 각 합이 동일할 때까지 리스트 왼쪽 끝에서 pop, 오른쪽 끝에서 insert 하는 코드를 작성하고 최소 횟수가 몇 번인지 출력하면 된다.문제점은 몇 번을 반복한다 해도 두 큐의 합이 동일해질 리 없는 조건들도 고려해야 하고, 시간 제한이 있는 문제기 때문에 코드를 정말 몇 번 고쳤는지 모르겠다.... 덕분에 Big-O(빅오)에 대해 한 번 더 공부할 수 있어서 좋았다. 문제 풀이 내가 작성한 코드 1 from collections import deque def solution(queue1, queue2): answer = 0 nums_list = queue1 + queue2 q1..
[프로그래머스 코딩 테스트] 성격 유형 검사하기 - KAKAO TECH INTERNSHIP 성격 유형 검사하기 문제 설명 나만의 카카오 성격 유형 검사지를 만들려고 합니다. 성격 유형 검사는 다음과 같은 4개 지표로 성격 유형을 구분합니다. 성격은 각 지표에서 두 유형 중 하나로 결정됩니다. (문제는 본 사이트에서 정확하게 확인한다고 가정하고 간단하게만 정리하자면) like MBTI 4개의 지표가 있으므로 성격 유형은 총 16(=2 x 2 x 2 x 2)가지가 나올 수 있습니다. 예를 들어, "RFMN"이나 "TCMA"와 같은 성격 유형이 있습니다. 검사지에는 총 n개의 질문이 있고, 각 질문에는 아래와 같은 7개의 선택지가 있습니다. 매우 동의 나 매우 비동의 선택지를 선택하면 3점을 얻습니다. 동의 나 비동의 선택지를 선택하면 2점을 얻습니다. 약간 동의 나 약간 비동의 선택지를 선택하면 ..
[백준 10757번 파이썬] 큰 수 A+B 이번 문제는 파이썬 언어를 사용하고 있는 우리에게는 아주 좋은 소식이다.. 큰 수를 다룰수록 실행 시간이 많이 소요되는 다른 언어들과는 다르게 파이썬은 이러한 소요 시간은 줄이기 위해 개발된 언어로 그저 평범하게 두 수를 입력받아 더하는 코드만 작성해도 시간 제한에 걸리지 않는다 A, B = map(int, input().split()) print(A+B) 즉, 위와 같이 평범하게 코드를 작성만 해줘도 정답이 된다
[백준 2839번 파이썬] 설탕 배달 이번 문제는 입력받은 수만큼의 설탕을 3킬로그램/5킬로그램 봉지들을 이용해 담고 그것을 배달할 때 덜 번거롭기 위해 봉지를 최소한의 개수로 나누어 출력하는 것이 목적이다 물론 3이나 5 봉지들로 나누어 떨어지지 않는다면 -1을 출력한다 sugar = int(input()) count = 0 while sugar >= 0: if sugar % 5 == 0: count += (sugar//5) print(count) break sugar-=3 count += 1 else: print(-1) 최소한의 봉지 개수로 나누기 위해서는 5킬로그램 봉지에 전부 넣을 수 있는 5의 배수가 될 때까지 3을 빼주는 방법이 있다 그러나 계속 3을 빼줬음에도 5의 배수가 되지 않고 결국 음수가 되어버린다면 -1을 출력해주는 코..
[백준 2775번 파이썬] 부녀회장이 될테야 이번 문제는 우선 케이스 개수를 입력받고 각각 층수와 호수를 한 줄씩 입력받아 각 케이스 위치에 몇 명의 거주민이 있는지를 출력하는 문제이다 이때 거주민은 자신의 층수 밑, 호수 밑에 위치한 모든 거주민들을 더한 수다 num = int(input()) for _ in range(num): floor = int(input()) room = int(input()) f = [x for x in range(1, room+1)] for k in range(floor): for i in range(1, room): f[i] += f[i-1] print(f[-1]) 보다 쉽게 설명할 수 있는 그림을 살펴보자면 1층에는 이미 각 호수만큼의 사람들이 들어와 살고 있다 입력받은 층수와 호수에 위치한 방에는 위와 같이 사각..
[백준 10250번 파이썬] ACM 호텔 이번 문제는 우선 케이스 개수를 입력받고 호텔의 높이, 호텔의 한 층 당 방 개수, 도착한 손님이 몇 번째 손님인지도 입력받은 후에 해당 손님이 이 호텔에서 몇 호실에 배정될지를 출력해주는 코드를 작성하면 된다 num = int(input()) for i in range(num): X, Y, Z = map(int, input().split()) top = Z%X room = Z//X+1 if top == 0: top = X room = Z//X print(f'{top*100+room}') 참고로 호텔 방을 배정하는 순서는 엘리베이터가 존재하는 왼쪽에서부터 아래에서 위 방향으로 진행된다 이 호텔 문제에서도 당연히 수식을 찾아내야 하는데 수식 관련 문제에서 쉽게 볼 수 있는 몫 나눗셈/나머지 나눗셈을 이용해..
[백준 2869번 파이썬] 달팽이는 올라가고 싶다 이번 문제는 세 번째 입력값만큼 크기의 나무 막대에서 낮에 첫 번째 입력값만큼 올라가고, 밤에 두 번째 입력값만큼 미끄러지는 달팽이가 나무 막대를 모두 올라가는 데 며칠이 걸리는지 출력하면 된다 import math A, B, V = map(int, input().split()) day = math.ceil((V-A)/(A-B))+1 print(day) ceil이라는, 수식 결과 소수값이 나오면 무조건 올림하는 함수를 이용해서 나무 막대 높이 - 낮에 움직이는 거리 낮에 움직이는 거리 - 밤에 미끄러지는 거리 결과값을 나누고 +1을 해주는데 그 이유는 우선 나무 막대 높이에서 낮에 움직이는 거리를 뺀 수로 나누기를 했기 때문에 첫 날 낮에 움직인 것이 자연스럽게 이 수식에서 제외되기 때문이다 그리고 첫날..