본문 바로가기
728x90

코딩테스트/프로그래머스89

[탐욕법(Greedy)] Level 1 체육복 - JAVA https://yummy0102.tistory.com/108 탐욕법(Greedy) > 체육복 전체 n명의 학생 lost 벡터에 체육복 잃어버린 학생 번호 저장 reserve 벡터에 체육복 여분 있는 학생 번호 저장 단, 체육복은 앞번호 혹은 뒷번호 학생에게만 대여 가능 #include #include #include using name yummy0102.tistory.com 오늘은 위 문제를 자바로 다시 풀었다 알고리즘은 기억해서 그냥 풀었는데 자꾸 테케 오류가 났다,,, 고민한 결과 한 학생이 가질 수 있는 체육복은 모두 1로 초기화했을 때, 최대 2개이고 최소 1개이다 그래서 부등호를 사용하지 않고 그냥 등호로 2개면 빌려주고, 0개면 받는 식으로 구현하였고, answer를 구할 때는 1개 이상이면 .. 2022. 2. 10.
[정렬] Level 1 K번째 수 문제 설명 배열 array의 i번째 숫자부터 j번째 숫자까지 자르고 정렬했을 때, k번째에 있는 수를 구하려 합니다. 예를 들어 array가 [1, 5, 2, 6, 3, 7, 4], i = 2, j = 5, k = 3이라면 array의 2번째부터 5번째까지 자르면 [5, 2, 6, 3]입니다. 1에서 나온 배열을 정렬하면 [2, 3, 5, 6]입니다. 2에서 나온 배열의 3번째 숫자는 5입니다. 배열 array, [i, j, k]를 원소로 가진 2차원 배열 commands가 매개변수로 주어질 때, commands의 모든 원소에 대해 앞서 설명한 연산을 적용했을 때 나온 결과를 배열에 담아 return 하도록 solution 함수를 작성해주세요. 제한 사항 array의 길이는 1 이상 100 이하입니다. .. 2022. 2. 9.
[DP] Level 3 N으로 표현 문제 설명 아래와 같이 5와 사칙연산만으로 12를 표현할 수 있습니다. 12 = 5 + 5 + (5 / 5) + (5 / 5) 12 = 55 / 5 + 5 / 5 12 = (55 + 5) / 5 5를 사용한 횟수는 각각 6,5,4 입니다. 그리고 이중 가장 작은 경우는 4입니다. 이처럼 숫자 N과 number가 주어질 때, N과 사칙연산만 사용해서 표현 할 수 있는 방법 중 N 사용횟수의 최솟값을 return 하도록 solution 함수를 작성하세요. 제한 사항 N은 1 이상 9 이하입니다. number는 1 이상 32,000 이하입니다. 수식에는 괄호와 사칙연산만 가능하며 나누기 연산에서 나머지는 무시합니다. 최솟값이 8보다 크면 -1을 return 합니다. 풀이) 이건 저번주에 풀려다가 시간이 없어서.. 2022. 2. 8.
[깊이/너비 우선 탐색(DFS/BFS)] Level 3 여행 경로 문제 설명 주어진 항공권을 모두 이용하여 여행경로를 짜려고 합니다. 항상 "ICN" 공항에서 출발합니다. 항공권 정보가 담긴 2차원 배열 tickets가 매개변수로 주어질 때, 방문하는 공항 경로를 배열에 담아 return 하도록 solution 함수를 작성해주세요. 제한 사항 모든 공항은 알파벳 대문자 3글자로 이루어집니다. 주어진 공항 수는 3개 이상 10,000개 이하입니다. tickets의 각 행 [a, b]는 a 공항에서 b 공항으로 가는 항공권이 있다는 의미입니다. 주어진 항공권은 모두 사용해야 합니다. 만일 가능한 경로가 2개 이상일 경우 알파벳 순서가 앞서는 경로를 return 합니다. 모든 도시를 방문할 수 없는 경우는 주어지지 않습니다. 안녕하세요 하루라도 코테를 안하면 다 까먹어버리는.. 2022. 2. 7.
[완전탐색] Level 2 소수찾기 - 파이썬 문제 설명 한자리 숫자가 적힌 종이 조각이 흩어져있습니다. 흩어진 종이 조각을 붙여 소수를 몇 개 만들 수 있는지 알아내려 합니다. 각 종이 조각에 적힌 숫자가 적힌 문자열 numbers가 주어졌을 때, 종이 조각으로 만들 수 있는 소수가 몇 개인지 return 하도록 solution 함수를 완성해주세요. 제한 사항 numbers는 길이 1 이상 7 이하인 문자열입니다. numbers는 0~9까지 숫자만으로 이루어져 있습니다. "013"은 0, 1, 3 숫자가 적힌 종이 조각이 흩어져있다는 의미입니다. 풀이) 먼저 내가 문제를 보자마자 필요하다고 생각한 로직은 2개이다 소수 찾기 알고리즘 numbers로 만들 수 있는 모든 숫자의 조합 (단, 중복X) 풀이 방식은 간단하게 풀릴 것 같았는데 조합을 구현하.. 2022. 1. 18.
[힙(Heap)] Level 3 이중우선순위큐 - 파이썬 나 저번에 카뱅 코테보고 결심했어 어차피 백엔드 준비하는거, 이제 코테 파이썬이랑 자바로 하려고!! 그 때 자바로 봐서 함수 찾아보느라 거의 못했거든,,, 생각해보니까 백이면 자바 공부삼아 해도 좋을 것 같아서! 암턴! 일단 스터디는 파이썬으로 진행하고 앞에 문제들 자바로 다시 풀어볼거임 파이썬 풀이) 그냥 간단하게 구현했다 저기 뭐야 그 heap 써서 최소힙 만들고 힙에서 최댓값 찾을 땐 nlargest라는 heapq 함수 써서 구했다 그리고 마지막에 최대, 최소 반환은 max함수랑 min 함수 사용함! 아 처음에 런타임 에러가 났는데 그게 원소를 삭제하는 경우에 heap이 비어있을 수도 있으니까 그 경우는 조건문으로 예외 처리를 해줘야 되더라구 그래서 거기는 len(힙)이 0이면 그냥 pass 해서 .. 2022. 1. 17.
728x90