본문 바로가기

분류 전체보기

(22)
프로그래머스 Level 2 - 2019 카카오 블라인드 채용 - 오픈채팅방 문제 설명 오픈채팅방 카카오톡 오픈채팅방에서는 친구가 아닌 사람들과 대화를 할 수 있는데, 본래 닉네임이 아닌 가상의 닉네임을 사용하여 채팅방에 들어갈 수 있다. 신입사원인 김크루는 카카오톡 오픈 채팅방을 개설한 사람을 위해, 다양한 사람들이 들어오고, 나가는 것을 지켜볼 수 있는 관리자창을 만들기로 했다. 채팅방에 누군가 들어오면 다음 메시지가 출력된다. "[닉네임]님이 들어왔습니다." 채팅방에서 누군가 나가면 다음 메시지가 출력된다. "[닉네임]님이 나갔습니다." 채팅방에서 닉네임을 변경하는 방법은 다음과 같이 두 가지이다. 채팅방을 나간 후, 새로운 닉네임으로 다시 들어간다. 채팅방에서 닉네임을 변경한다. 닉네임을 변경할 때는 기존에 채팅방에 출력되어 있던 메시지의 닉네임도 전부 변경된다. 예를 들..
프로그래머스 Level 2 - DFS/BFS - 게임 맵 최단거리 문제 설명 ROR 게임은 두 팀으로 나누어서 진행하며, 상대 팀 진영을 먼저 파괴하면 이기는 게임입니다. 따라서, 각 팀은 상대 팀 진영에 최대한 빨리 도착하는 것이 유리합니다. 지금부터 당신은 한 팀의 팀원이 되어 게임을 진행하려고 합니다. 다음은 5 x 5 크기의 맵에, 당신의 캐릭터가 (행: 1, 열: 1) 위치에 있고, 상대 팀 진영은 (행: 5, 열: 5) 위치에 있는 경우의 예시입니다. 위 그림에서 검은색 부분은 벽으로 막혀있어 갈 수 없는 길이며, 흰색 부분은 갈 수 있는 길입니다. 캐릭터가 움직일 때는 동, 서, 남, 북 방향으로 한 칸씩 이동하며, 게임 맵을 벗어난 길은 갈 수 없습니다. 아래 예시는 캐릭터가 상대 팀 진영으로 가는 두 가지 방법을 나타내고 있습니다. 첫 번째 방법은 11..
프로그래머스 Level2 - 2019 카카오 개발자 겨울 인턴쉽 - 튜플 문제 설명 셀수있는 수량의 순서있는 열거 또는 어떤 순서를 따르는 요소들의 모음을 튜플(tuple)이라고 합니다. n개의 요소를 가진 튜플을 n-튜플(n-tuple)이라고 하며, 다음과 같이 표현할 수 있습니다. (a1, a2, a3, ..., an) 튜플은 다음과 같은 성질을 가지고 있습니다. 중복된 원소가 있을 수 있습니다. ex : (2, 3, 1, 2) 원소에 정해진 순서가 있으며, 원소의 순서가 다르면 서로 다른 튜플입니다. ex : (1, 2, 3) ≠ (1, 3, 2) 튜플의 원소 개수는 유한합니다. 특정 튜플을 표현하는 집합이 담긴 문자열 s가 매개변수로 주어질 때, s가 표현하는 튜플을 배열에 담아 return 하도록 solution 함수를 완성해주세요. [제한사항] s의 길이는 5 이상..
프로그래머스 Level 2 - Heap - 더 맵게 문제 설명 매운 것을 좋아하는 Leo는 모든 음식의 스코빌 지수를 K 이상으로 만들고 싶습니다. 모든 음식의 스코빌 지수를 K 이상으로 만들기 위해 Leo는 스코빌 지수가 가장 낮은 두 개의 음식을 아래와 같이 특별한 방법으로 섞어 새로운 음식을 만듭니다. 섞은 음식의 스코빌 지수 = 가장 맵지 않은 음식의 스코빌 지수 + (두 번째로 맵지 않은 음식의 스코빌 지수 * 2) Leo는 모든 음식의 스코빌 지수가 K 이상이 될 때까지 반복하여 섞습니다. Leo가 가진 음식의 스코빌 지수를 담은 배열 scoville과 원하는 스코빌 지수 K가 주어질 때, 모든 음식의 스코빌 지수를 K 이상으로 만들기 위해 섞어야 하는 최소 횟수를 return 하도록 solution 함수를 작성해주세요.제한 사항 scovill..
버블 정렬 ( Bubble Sort ) 버블 정렬은 이웃하는 숫자를 비교 후 작은 수를 앞으로 큰 수를 뒤로 보내는 정렬입니다. 나무위키에서 버블정렬 설명 애니메이션을 보면 이해가 더욱 쉽습니다! [ 나무위키 링크 ] https://namu.wiki/w/%EC%A0%95%EB%A0%AC%20%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98 시간 복잡도는 O(n^2) 이며 아래는 자바 코드입니다. import java.util.Arrays; public class BubbleSort { public static void main(String[] args) { // 정렬 할 리스트 int [] list = {5, 4,6,7,3,8,14,73,46,66}; // 메소드 실행 bubbleSort(list); // 결과 출력 Syste..
7.1 도입 행렬 1 부터 10까지 더하는 것 => 행렬 => 팩토리얼 기존의 팩토리얼 재귀 함수는 아래와 같이 선형 알고리즘이었다! // 함수(변수) => 변수가 1이 될때까지 계속 뺌 static int 팩토리얼(int n) { // 변수가 1이 되면 1을 반환함 if(n==1)return 1; // 10 > 9 > 8 > 7 > 6 > 5 > 4 > 3 > 2 > 1 (if문에서 return 1) 반환! //반환중 1 > 2+1 > 3+3 > 4+6 > 5+10 > 6+15 > 7+21 > 8+28 > 9+36 > 10 + 45 반환 완료 // 반환이 끝났다면 아래 return 문으로 (45) + 10 을 반환한다! return 팩토리얼 (n-1) + n; } 하지만 위와 같은 코드보다 더욱 효과적으로 작성할수 있는..