본문 바로가기

전체 글105

프로그래머스 LV.3 네트워크 프로그래머스 LV.3 네트워크 1. 문제 링크 https://programmers.co.kr/learn/courses/30/lessons/43162 코딩테스트 연습 - 네트워크 네트워크란 컴퓨터 상호 간에 정보를 교환할 수 있도록 연결된 형태를 의미합니다. 예를 들어, 컴퓨터 A와 컴퓨터 B가 직접적으로 연결되어있고, 컴퓨터 B와 컴퓨터 C가 직접적으로 연결되어 있 programmers.co.kr 2. 문제 해결에 대한 아이디어 이 문제는 Disjoint-Set(Union-Find) 로 풀 수 있다. 이러한 유형은 두 가지 함수에 대해서 알고 있으면 쉽게 풀 수 있다. - findParent : 해당 함수의 최종 부모 찾기 - union : 부모가 다른 두 노드를 동일한 부모를 갖도록 만들기 findPa.. 2022. 1. 14.
프로그래머스 LV.2 전화번호 목록 프로그래머스 LV.2 전화번호 목록 1. 문제 링크 https://programmers.co.kr/learn/courses/30/lessons/42577 코딩테스트 연습 - 전화번호 목록 전화번호부에 적힌 전화번호 중, 한 번호가 다른 번호의 접두어인 경우가 있는지 확인하려 합니다. 전화번호가 다음과 같을 경우, 구조대 전화번호는 영석이의 전화번호의 접두사입니다. 구조 programmers.co.kr 2. 문제 해결에 대한 아이디어 이 문제를 풀기 위해서는 사전 지식 두개가 필요했다. 문자열에 대한 정렬 문자열 배열을 기본 정렬할 경우 사전 순으로 정렬된다. 정렬된 이후 i+1번째 문자열은 i번째 문자열과 1) 같거나 2) i번째 문자열 + @ 이거나 3) 이 외 사전 순서상 뒤이다. StringA.st.. 2022. 1. 13.
프로그래머스 LV.2 오픈채팅방 프로그래머스 LV.2 오픈채팅방 1. 문제 링크 https://programmers.co.kr/learn/courses/30/lessons/42888 코딩테스트 연습 - 오픈채팅방 오픈채팅방 카카오톡 오픈채팅방에서는 친구가 아닌 사람들과 대화를 할 수 있는데, 본래 닉네임이 아닌 가상의 닉네임을 사용하여 채팅방에 들어갈 수 있다. 신입사원인 김크루는 카카오톡 오 programmers.co.kr 2. 문제 해결에 대한 아이디어 HashMap hm 으로 key : uid / value : name을 저장한다. Enter와 Leave에 한해서 answer에 "{uid} 들어왔습니다./나갔습니다." 로 저장한다. 기록이 끝난 뒤, uid 를 "name님이"로 바꿔준다. Change일 때, 이미 존재하는 key:.. 2022. 1. 12.
프로그래머스 LV.2 카카오프렌즈 컬러링북 프로그래머스 LV.2 카카오프렌즈 컬러링북 1. 문제 링크 https://programmers.co.kr/learn/courses/30/lessons/1829 코딩테스트 연습 - 카카오프렌즈 컬러링북 6 4 [[1, 1, 1, 0], [1, 2, 2, 0], [1, 0, 0, 1], [0, 0, 0, 1], [0, 0, 0, 3], [0, 0, 0, 3]] [4, 5] programmers.co.kr 2. 문제 해결에 대한 아이디어 이 문제는 이상하게 전역 변수를 solution 함수 내에서 초기화를 해야했다. 해당 문제의 게시판을 확인해보면 solution 내에서 초기화하면 통과 된다는 글을 볼 수 있다. 이 문제는 BFS를 사용했고 영역의 갯수를 세기 위해서 방문 배열인 visit에 영역의 번호를 저.. 2022. 1. 11.
프로그래머스 LV.2 게임 맵 최단거리 프로그래머스 LV.2 게임 맵 최단거리 1. 문제 링크 https://programmers.co.kr/learn/courses/30/lessons/1844 코딩테스트 연습 - 게임 맵 최단거리 [[1,0,1,1,1],[1,0,1,0,1],[1,0,1,1,1],[1,1,1,0,1],[0,0,0,0,1]] 11 [[1,0,1,1,1],[1,0,1,0,1],[1,0,1,1,1],[1,1,1,0,0],[0,0,0,0,1]] -1 programmers.co.kr 2. 문제 해결에 대한 아이디어 위치를 기록하는데 사용할 Pair 클래스를 선언했다. - y 를 세로, x를 가로로 사용했다. 방문 배열에는 이동 거리를 기록한다. BFS를 사용하여 최단 거리를 구한다. 3. 코드 import java.util.Array.. 2022. 1. 10.
백준 15666 N과 M (12) 백준 15666 N과 M (12) 1. 문제 링크 https://www.acmicpc.net/problem/15666 15666번: N과 M (12) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net 2. 문제 해결에 대한 아이디어 중복값이 포함된 Input을 배열로 받아 정렬하는 로직이 추가되었다. 문제의 조건대로 정렬을 한 뒤, before 변수를 사용하여 현재 재귀의 for문에서 이전에 선택된 값을 선택하지 않도록 했다. 이후에는 일반적인 중복 조합 로직을 적용하여, visit을 사용하지 않는다. Input에 따라 Output 양이 많.. 2022. 1. 9.