[HackerRank] Electronics Shop (전자제품상점) Implementation 문제
·
Programming/CodingTest
문제당신은 새 키보드와 USB 드라이브를 구매하려고 합니다.가게에서 각 제품에 대한 다양한 가격이 주어집니다.당신은 제한된 예산 내에서 하나의 키보드와 하나의 USB 드라이브를 구입하려고 합니다.가능한 한 많은 돈을 쓰고 싶지만, 예산을 초과할 수는 없습니다.예산 내에서 키보드와 USB 드라이브를 구입할 수 있는 최대 금액을 계산하세요. 입력값:첫 번째 줄: 예산을 나타내는 정수 b.두 번째 줄: 키보드의 가격 목록을 나타내는 정수 배열 keyboards.세 번째 줄: USB 드라이브의 가격 목록을 나타내는 정수 배열 drives. 출력값:예산 내에서 키보드와 USB 드라이브를 함께 구매할 수 있는 최대 금액을 출력합니다. 만약 어떤 것도 구매할 수 없다면 -1을 출력합니다. 예시:입력10[3, 1][5..
[HackerRank] Sales by Match (양말 판매상) Implementation 문제
·
Programming/CodingTest
문제 :당신에게는 다양한 색상의 양말이 무작위로 섞인 큰 양말 더미가 있습니다. 각 양말의 색상은 정수로 표시되며, 배열로 제공됩니다. 이 배열에서 각 색상의 양말이 몇 개씩 있는지 파악한 후, 같은 색상의 양말이 몇 쌍(pair)이나 만들어질 수 있는지를 계산해야 합니다. 입력값:첫 번째 줄에는 양말의 총 개수를 나타내는 정수 n이 주어집니다.두 번째 줄에는 각 양말의 색상을 나타내는 n개의 정수 배열 ar이 주어집니다. 각 정수는 특정 색상을 나타냅니다. 출력값:같은 색상의 양말이 몇 쌍이나 만들어질 수 있는지를 나타내는 정수 값을 출력합니다. 예시:입력:910 20 20 10 10 30 50 10 20출력:3  설명:위의 예시에서 10 색상의 양말은 4개가 있으며, 2개의 페어를 만들 수 있습니다...
[Data] CSV 파일의 데이터 병합 문제
·
Programming/CodingTest
문제: CSV 파일의 데이터 병합여러 개의 CSV 파일이 주어집니다. 각 파일에는 동일한 구조의 데이터가 포함되어 있으며, 하나의 열은 고유 ID를 가지고 있습니다.  모든 CSV 파일을 병합하여 하나의 CSV 파일로 만들고, 고유 ID를 기준으로 중복된 항목을 제거한 후, 병합된 데이터를 새로운 CSV 파일에 저장하세요.  입력 형식로그 파일은 다음과 같은 형식을 가집니다.CSV 파일 경로의 리스트 (예: csv_files = ["data1.csv", "data2.csv", "data3.csv"])CSV 파일 내용data1.csv:id,name,value1,Alice,1002,Bob,200data2.csv:id,name,value2,Bob,2503,Charlie,300data3.csv:id,name,v..
[이코테] [5] 다이나믹 프로그래밍 ( 동적계획법 )
·
Programming/CodingTest
다이나믹 프로그래밍 조건1. 최적 부분 구조 : 큰 문제를 작은 문제로 나눌 수 있다.2. 중복되는 부분 문제 : 동일한 작은 문제를 반복적으로 해결합니다. 예제1) 피보나치 수열def fibo(x): if x == 1 or x == 2: return 1 return fibo(x-1) + fibo(x-2)print(fibo(4)) 메모리제이션 기법- 한번 계산한 결과를 메모리 공간메 메모하는 기법- 위의 피보나치 수열에 대입해 볼 때, 이미 계산된 함수를 생략할 수 있는 장점  예제2) 개미전사- 개미 전사가 식량창고를 선택적으로 약탈하여 식량을 뺏을 때 가장 큰 식량을 얻을 수 있도록 해야합니다.- 정찰병에게 들키지 않고 식량창고를 약탈하기 위해선 최소한 한칸 이상 떨어진 식량창..
[이코테] [4] 정렬-Sort
·
Programming/CodingTest
선택정렬- 가장 작은 데이터를 선택해 맨 앞에 있는 데이터와 바꾸는 것을 반복1) 0 5 9 7 32) 0 3 9 7 53) 0 3 5 7 9# 예제 - 이중 반복문# 시간복잡도 : O(N제곱)array = [7,5,9,0,3,1,2]for i in range(len(array)): min_idx = i for j in range(i+1, len(array)): if array[min_idx] > array[j]: min_idx = j array[i], array[min_idx] = array[min_idx], array[i]print(array)  삽입정렬- 처리되지 않은 데이터를 하나씩 골라 적절한 위치에 삽입- 선택 정렬에 비해 구현난이도가 높지만, ..
[이코테] [3] DFS 와 BFS
·
Programming/CodingTest
그래프 탐색 알고리즘 DFS/BFS 탐색 알고리즘으로 많이 등장하는 유형스택 구현 예제stack = []stack.append(5)stack.append(4)stack.pop()stack.append(3)stack.append(2)stack.pop()print(stack)# >>> [5, 3]print(stack[::-1]) # 스택 역순# >>> [3, 5] 큐 구현 예제from collections import dequequeue = deque()queue.append(5)queue.append(4)queue.append(3)queue.popleft()queue.append(2)queue.append(1)queue.popleft()print(queue)# >>> deque([3, 2, 1])queue..
[이코테] [2] 그리디(Greedy) 와 구현 (Implementation)
·
Programming/CodingTest
탐욕법 - Greedy그리디 알고리즘(탐욕법)은 현재 상황에서 최적의 해를 항상 보장하는 방법을 적용 예제 1문제 - 손님에게 거슬러 줘야 할 돈이 N 일 때 거슬러 주어야할 동전(500,100,10)의 최소 개수 구하기풀이 - 가장 큰 화페 단위부터 돈을 거슬러 준다.그리디 적용 조건 - 큰 단위가 항상 작은 단위의 배수가 되어야 한다. ( 500원 동전은 10원,100원 동전의 배수  )코드 - n = 1260count = 0array = [500, 100, 50, 10]for coin in array: count += n // coin n %= coinprint(count)# 시간복잡도 O(K)  예제 2문제 - 각 자리가 숫자로 이루어진 문자열(S), 왼쪽부터 'x', '+' 연산자를 ..
[이코테] [1] 코딩테스트를 위한 많이 활용하는 파이썬 문법
·
Programming/CodingTest
내장 함수프로그램을 작성할 때 없어서 안되는 필수적인 기능을 포함합니다. map 함수반복가능한(iterable) 자료형의 모든 요소에 특정 함수를 적용 후, 결과 반환map(적용할 함수, 반복가능한 객체)map() 함수의 반환값은 map객체로, 결과를 리스트나 튜플로 변환해야 함예제 : data = list(map(int, input().split())) 정렬 함수sorted() 는 내장 함수, 새로운 리스트를 반환sort() 리스트의 함수, 원본 리스트 자체를 정렬, 반환값은 None 람다 함수# 람다 함수 [1]print((lambda a,b : a+b)(10,5)) # 결과 15# 람다 함수 [2]array = [('매트',50),('로리'20),('소드'75)]def my_key(x): retur..
wave35
'codingtest' 태그의 글 목록 (2 Page)