본문 바로가기

분류 전체보기

(88)
[Programmers] LV2 - 영어 끝말잇기 https://programmers.co.kr/learn/courses/30/lessons/12981 코딩테스트 연습 - 영어 끝말잇기 3 ["tank", "kick", "know", "wheel", "land", "dream", "mother", "robot", "tank"] [3,3] 5 ["hello", "observe", "effect", "take", "either", "recognize", "encourage", "ensure", "establish", "hang", "gather", "refer", "reference", "estimate", "executive"] [0,0] programmers.co.kr 문제 파악 1번부터 N번까지 순서대로 영어로 끝말잇기를 한다. 탈락하는 조건은 2가지..
[BOJ] 1141번 : 접두사 https://www.acmicpc.net/problem/1141 1141번: 접두사 접두사X 집합이란 집합의 어떤 한 단어가, 다른 단어의 접두어가 되지 않는 집합이다. 예를 들어, {hello}, {hello, goodbye, giant, hi}, 비어있는 집합은 모두 접두사X 집합이다. 반면에, {hello, hell}, {giant, www.acmicpc.net 문제 파악 문제의 의도는 A라는 문자가 B라는 문자의 접두사가 되는가 파악해서 접두사가 되지 않는 문자들의 개수를 출력하면 된다. 더보기 import java.util.*; import java.io.*; public class Main{ public static void main(String[] args) throws IOExceptio..
[Programmers]LV3 - 길 찾기 게임 https://programmers.co.kr/learn/courses/30/lessons/42892 코딩테스트 연습 - 길 찾기 게임 [[5,3],[11,5],[13,3],[3,5],[6,1],[1,3],[8,6],[7,2],[2,2]] [[7,4,6,9,1,8,5,2,3],[9,6,5,8,1,4,3,2,7]] programmers.co.kr 문제 파악 문제에 주어진 설명에서 간선, 전위 순회, 후위 순회를 보고서 트리 구조로 문제를 풀어야겠다는 생각이 들었다. 왜냐하면, X좌표를 기준으로 BST가 만들수 있겠다는 판단이 섰기 때문이다. 그런데 이론만 알고 막상 트리를 구현하려고 하니 생각보다 잘 안돼서 트리 구조에 대해 다시 공부하고 풀었다.. 모르는 걸 새로 알아가는 것도 좋지만 이런 걸 모르면 좀..
[Programmers] LV2 - 캐시 https://programmers.co.kr/learn/courses/30/lessons/17680 = cacheSize){ cache.poll(); } cache.add(city); answer+=5; } } } return answer; } }
[Programmers] LV2 - 큰 수 만들기 https://programmers.co.kr/learn/courses/30/lessons/42883 코딩테스트 연습 - 큰 수 만들기 programmers.co.kr 알고리즘 분류 : 그리디 알고리즘 문제 파악 처음으로 생각했던 것은 가장 작은 숫자부터 1개씩 제거해볼까 하는 생각이 들었다. 하지만 입출력 예제 3번에서 1,2를 제거할 경우 477584가 나오므로 775841보다 작은 숫자가 나오기 때문에 아니었다. 그 뒤로 생각난 것이 스택 각 자리의 숫자를 스택에 넣고 Peek() 데이터와 비교하여 작을 경우 현재 위치의 숫자보다 작은 것을 제거해 나간다 3번 예제를 보면 Stack : 4 Stack : 4,1로 쌓이다가 7은 4,1 모두 7보다 작으니 Stack에서 제거 한 다음 7을 Stack에..
[Programmers] LV2 - 이진 변환 반복하기 https://programmers.co.kr/learn/courses/30/lessons/70129 코딩테스트 연습 - 이진 변환 반복하기 programmers.co.kr 문제 파악 1. 0과 1로 이루어진 문자열의 모든 0을 제거한다. 2. 0을 제거한 문자의 길이를 다시 2진법으로 표현한다. 3. 다시 위의 과정을 문자열이 "1"이 될 때까지 반복한다. 더보기 import java.util.*; class Solution { public int[] solution(String s) { int[] answer = new int[2]; int zerocnt = 0; int cycle = 0; StringBuilder sb; while(!s.equals("1")) { sb = new StringBuild..
[Programmers]LV2 - 뉴스 클러스터링 https://programmers.co.kr/learn/courses/30/lessons/17677 코딩테스트 연습 - [1차] 뉴스 클러스터링 뉴스 클러스터링 여러 언론사에서 쏟아지는 뉴스, 특히 속보성 뉴스를 보면 비슷비슷한 제목의 기사가 많아 정작 필요한 기사를 찾기가 어렵다. Daum 뉴스의 개발 업무를 맡게 된 신입사원 튜브 programmers.co.kr 문제 파악 교집합, 합집합을 만들 수 있는가?라고 생각하고 접근하였다. 1. 각 문자열 Str1과 Str2에서 2 글자씩 끊어서 집합의 원소를 만든다. (단, 2글자 모두 영문자이어야 하며 , 특수문자, 숫자가 들어갈 시에는 원소가 되지 못한다.) 2. 문자열 Str1가 "AAA" 라면 집합 A의 원소는 "AA", "AA"로 2개가 만들어진..
[Programmers] LV2 - 스킬 트리 https://programmers.co.kr/learn/courses/30/lessons/49993 코딩테스트 연습 - 스킬트리 programmers.co.kr 문제 파악 유저들이 만든 스킬 트리가 선행 스킬에 맞는 스킬 트리인지 판단하고 개수를 RETURN 해주면 된다. 문제를 푸는 아이디어는 주어진 스킬트리에서 선행 스킬이 아닌 문자를 ReplaceAll로 제거하고 그 문자에서 선행 스킬의 IndexOf가 0이 아니라면 제거해주는 식 (선행 스킬의 순서와 맞지 않음)으로 풀었다. 처음 통과한 소스 더보기 import java.util.*; class Solution { public int solution(String skill, String[] skill_trees) { int answer = 0;..