코딩테스트 연습 35

chatGPT와 함께 알고리즘을~

알고리즘 푸는데 챗GPT가 웬말이냐! 라고 할 수도 있지만...인공지능이 점점 똑똑해지는 요즘 시대에 기계보다 나은 인간이 되기 위해선상대를 우선 알아야 하는 것이 아닐까?그래서 chat GPT는 알고리즘을 어떻게 푸는지 체험해보기로 했다.집단지성 속에서 가장 좋은 방법을 뽑아 알려주니까그 코드를 분석하다보면? 내가 미처 몰랐던 방법들도 알 수 있겠지!그럼 레츠 고~

[Java] 백준 9465 스티커 / DP 쉬운 예제

import java.util.*; import java.io.*; public class Main { static BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); static StringTokenizer st; public static void main(String[] args) throws NumberFormatException, IOException { int T = Integer.parseInt(br.readLine()); //입력되는 테스트케이스 개수 for (int i = 0; i < T; i++) { int n = Integer.parseInt(br.readLine()); int[][] map = new in..

[백준] 4158 : CD / JAVA, 해시, 맵, 이분탐색

처음엔 해시맵으로 각각의 CD목록을 만들고 교집합의 길이를 답으로 제출하게 했다. 하지만 왜인지 16%쯤에 틀렸다고 나온다... import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.HashMap; import java.util.HashSet; import java.util.Map; import java.util.Set; import java.util.StringTokenizer; public class easy3_0729 { public static void main(String[] args) throws NumberFormatException,IOExcepti..

[programmers] 프로세스 / 큐

문제 더보기 문제 설명 운영체제의 역할 중 하나는 컴퓨터 시스템의 자원을 효율적으로 관리하는 것입니다. 이 문제에서는 운영체제가 다음 규칙에 따라 프로세스를 관리할 경우 특정 프로세스가 몇 번째로 실행되는지 알아내면 됩니다. 1. 실행 대기 큐(Queue)에서 대기중인 프로세스 하나를 꺼냅니다. 2. 큐에 대기중인 프로세스 중 우선순위가 더 높은 프로세스가 있다면 방금 꺼낸 프로세스를 다시 큐에 넣습니다. 3. 만약 그런 프로세스가 없다면 방금 꺼낸 프로세스를 실행합니다. 3.1 한 번 실행한 프로세스는 다시 큐에 넣지 않고 그대로 종료됩니다. 예를 들어 프로세스 4개 [A, B, C, D]가 순서대로 실행 대기 큐에 들어있고, 우선순위가 [2, 1, 3, 2]라면 [C, D, A, B] 순으로 실행하게..

[programmers] 기능개발 / 큐

프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr def solution(progresses, speeds): answer = [] endIndex = 0 # 실제 배포가 끝난 index # for j in range(10): 로직 개발시 임의로 for값을 제한하는 것이 풀기 쉽다! while True: endCount = 0 # 배포된 수를 계산 for i in range(endIndex, len(progresses)): progresses[i] += speeds[i] for i in range(endIndex, len(progresses)): if pro..

[programmers] 가장 큰 수 / 조건정렬

프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr from functools import cmp_to_key def solution(numbers): numbers.sort(key=cmp_to_key(lambda x, y: int(str(y) + str(x)) - int(str(x) + str(y)))) numbers = list(map(str, numbers)) return str(int(''.join(numbers))) cmp_to_key라는 조건정렬 기능을 사용하면 쉽게 해결할 수 있다. 마지막 답을 return할 때, int로 한번 전환해주지 않으면 ..

[programmers] 베스트 앨범 / 해시

문제 더보기 문제 설명 스트리밍 사이트에서 장르 별로 가장 많이 재생된 노래를 두 개씩 모아 베스트 앨범을 출시하려 합니다. 노래는 고유 번호로 구분하며, 노래를 수록하는 기준은 다음과 같습니다. 속한 노래가 많이 재생된 장르를 먼저 수록합니다. 장르 내에서 많이 재생된 노래를 먼저 수록합니다. 장르 내에서 재생 횟수가 같은 노래 중에서는 고유 번호가 낮은 노래를 먼저 수록합니다. 노래의 장르를 나타내는 문자열 배열 genres와 노래별 재생 횟수를 나타내는 정수 배열 plays가 주어질 때, 베스트 앨범에 들어갈 노래의 고유 번호를 순서대로 return 하도록 solution 함수를 완성하세요. 제한사항 genres[i]는 고유번호가 i인 노래의 장르입니다. plays[i]는 고유번호가 i인 노래가 재..