[프로그래머스] 영어 끝말잇기
알고리즘2024. 5. 2. 22:48[프로그래머스] 영어 끝말잇기

문제1부터 n까지 번호가 붙어있는 n명의 사람이 영어 끝말잇기를 하고 있습니다. 영어 끝말잇기는 다음과 같은 규칙으로 진행됩니다.1. 1번부터 번호 순서대로 한 사람씩 차례대로 단어를 말합니다.2. 마지막 사람이 단어를 말한 다음에는 다시 1번부터 시작합니다.3. 앞사람이 말한 단어의 마지막 문자로 시작하는 단어를 말해야 합니다.4. 이전에 등장했던 단어는 사용할 수 없습니다.5. 한 글자인 단어는 인정되지 않습니다.다음은 3명이 끝말잇기를 하는 상황을 나타냅니다.tank → kick → know → wheel → land → dream → mother → robot → tank위 끝말잇기는 다음과 같이 진행됩니다.1번 사람이 자신의 첫 번째 차례에 tank를 말합니다.2번 사람이 자신의 첫 번째 차례에..

[프로그래머스] 예상 대진표
알고리즘2024. 5. 1. 22:05[프로그래머스] 예상 대진표

문제△△ 게임대회가 개최되었습니다. 이 대회는 N명이 참가하고, 토너먼트 형식으로 진행됩니다. N명의 참가자는 각각 1부터 N번을 차례대로 배정받습니다. 그리고, 1번↔2번, 3번↔4번, ... , N-1번↔N번의 참가자끼리 게임을 진행합니다. 각 게임에서 이긴 사람은 다음 라운드에 진출할 수 있습니다. 이때, 다음 라운드에 진출할 참가자의 번호는 다시 1번부터 N/2번을 차례대로 배정받습니다. 만약 1번↔2번 끼리 겨루는 게임에서 2번이 승리했다면 다음 라운드에서 1번을 부여받고, 3번↔4번에서 겨루는 게임에서 3번이 승리했다면 다음 라운드에서 2번을 부여받게 됩니다. 게임은 최종 한 명이 남을 때까지 진행됩니다.이때, 처음 라운드에서 A번을 가진 참가자는 경쟁자로 생각하는 B번 참가자와 몇 번째 라운..

[프로그래머스] 스킬트리
알고리즘2024. 4. 30. 16:04[프로그래머스] 스킬트리

문제선행 스킬이란 어떤 스킬을 배우기 전에 먼저 배워야 하는 스킬을 뜻합니다.예를 들어 선행 스킬 순서가 스파크 → 라이트닝 볼트 → 썬더일때, 썬더를 배우려면 먼저 라이트닝 볼트를 배워야 하고, 라이트닝 볼트를 배우려면 먼저 스파크를 배워야 합니다.위 순서에 없는 다른 스킬(힐링 등)은 순서에 상관없이 배울 수 있습니다. 따라서 스파크 → 힐링 → 라이트닝 볼트 → 썬더와 같은 스킬트리는 가능하지만, 썬더 → 스파크나 라이트닝 볼트 → 스파크 → 힐링 → 썬더와 같은 스킬트리는 불가능합니다.선행 스킬 순서 skill과 유저들이 만든 스킬트리1를 담은 배열 skill_trees가 매개변수로 주어질 때, 가능한 스킬트리 개수를 return 하는 solution 함수를 작성해주세요.제한 조건스킬은 알파벳 대..

[프로그래머스] 폰켓몬
알고리즘2024. 4. 29. 23:45[프로그래머스] 폰켓몬

문제당신은 폰켓몬을 잡기 위한 오랜 여행 끝에, 홍 박사님의 연구실에 도착했습니다. 홍 박사님은 당신에게 자신의 연구실에 있는 총 N 마리의 폰켓몬 중에서 N/2마리를 가져가도 좋다고 했습니다.홍 박사님 연구실의 폰켓몬은 종류에 따라 번호를 붙여 구분합니다. 따라서 같은 종류의 폰켓몬은 같은 번호를 가지고 있습니다. 예를 들어 연구실에 총 4마리의 폰켓몬이 있고, 각 폰켓몬의 종류 번호가 [3번, 1번, 2번, 3번]이라면 이는 3번 폰켓몬 두 마리, 1번 폰켓몬 한 마리, 2번 폰켓몬 한 마리가 있음을 나타냅니다. 이때, 4마리의 폰켓몬 중 2마리를 고르는 방법은 다음과 같이 6가지가 있습니다.1. 첫 번째(3번), 두 번째(1번) 폰켓몬을 선택2. 첫 번째(3번), 세 번째(2번) 폰켓몬을 선택3. ..

[묘공단] 자바 HashMap에 대하여
알고리즘2024. 4. 29. 12:46[묘공단] 자바 HashMap에 대하여

1. HashMap이란?자바 HashMap은 키(Key)-값(Value) 쌍을 저장하는 데이터 구조이다. 데이터를 저장할 때는 키 값으로 해시함수를 실행한 결과를 통해 저장위치를 결정한다.특정 데이터의 저장 위치를 해시함수를 통해 바로 알 수 있기때문에 데이터의 검색이 굉장히 빠르다는 장점이 있다. 2. HashMap의 특징키-값 쌍: HashMap의 각 요소는 키-값 쌍이다. 키는 연관된 값을 검색하는데 사용된다.해싱: 내부적으로 HashMap은 해싱을 사용하여 요소를 효율적으로 저장하고 검색한다. 키-값 쌍을 HashMap에 넣으면 키가 해시되고 결과 해시코드를 사용하여 키-값 쌍이 메모리에 저장될 위치를 결정한다. 빠른 검색: 해싱 알고리즘을 통해 HashMap이 원하는 키-값 쌍이 저장된 위치를 ..

[백준] 1158
알고리즘2024. 4. 26. 23:32[백준] 1158

문제요세푸스 문제는 다음과 같다.1번부터 N번까지 N명의 사람이 원을 이루면서 앉아있고, 양의 정수 K(≤ N)가 주어진다. 이제 순서대로 K번째 사람을 제거한다. 한 사람이 제거되면 남은 사람들로 이루어진 원을 따라 이 과정을 계속해 나간다. 이 과정은 N명의 사람이 모두 제거될 때까지 계속된다. 원에서 사람들이 제거되는 순서를 (N, K)-요세푸스 순열이라고 한다. 예를 들어 (7, 3)-요세푸스 순열은 이다.N과 K가 주어지면 (N, K)-요세푸스 순열을 구하는 프로그램을 작성하시오. 입력첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 5,000)출력예제와 같이 요세푸스 순열을 출력한다. 풀이큐를 이용해서 풀이를 진행했다. 1. 1부터 n까지의 숫자를 큐에 담는..

image