Algorithm

    [LeetCode] Convert Binary Number in a Linked List to Integer

    sudo code Singly- linked list 인 ListNode가 주어지고 head가 주어진다. 예제 1번은 1 -> 0 -> 1 이번 head 즉 LintNode의 val = 1 head.next.val = 0 head.next.next.val = 1 여기서 요구하는 것은 2진수 형식으로 되어있는 linked list를 2진수 방식으로 자리수를 더해 정수형의 값으로 return하는 것 어떻게 할 것인가. testcase를 1,1,0,0 1*2^3 + 1*2^2 + 0*2^1 + 0*2^0 answer = head.val -> 0,0,1,1인 상황이라면? 1,1,0,0 if(head.next != null) ->answer = answer * 2 0 ->0...0...0 -> X 1 -> 2....

    [프로그래머스] - 더 맵게

    sudo code 섞은 음식의 스코빌 지수 = 가장 맵지 않은 음식의 스코빌 지수 + (두 번째로 맵지 않은 음식의 스코빌 지수 * 2) 섞은 음식의 스코빌 지수 >= k => return mixCount int[] scoville을 arraylist로 바꾸고 최대로 섞는 횟수는 scoville.length - 1 반복문 { 오름차순으로 sort mixScoville = 가장 덜 매운것 + 두번째 * 2 섞은게 K보다 스코빌지수가 높거나 같으면 시도 횟수 return 높지 않다면? sort를 했으므로 앞에 0, 1요소 삭제 mixScoville add해주기 } 조건 미흡시 return -1 1차 시도 import java.util.ArrayList; import java.util.Arrays; impor..

    [프로그래머스] - 여행경로

    Sudo 코드 ICN에서 시작 다수 루트가 존재시 알파벳 순으로 정렬 a -> b b -> c a -> c c -> a .... -> key value? hashMap tickets를 순회하여 map에 담음 어짜피 ICN에서 시작하고 ICN -> ABC => abc arrayList에 추가 ABC의 키가 존재한다면? -> abc의 키로 value 가져오기 value arrayList에 추가 value의 키가 존재한다면... recursive arraylist에서 중복을 제거하고 return? stackoverflow 뜹니다.. 재귀식에서 문제가 있는데 머리가 터질거 같아서 오늘은 여기까지 하고 다른분들의 해설을 보겠습니다. import java.util.*; class Solution { public S..

    [백준 온라인 저지] - 베스트셀러

    sudo code n개의 입력 n개의 String을 받아서 String[]에 넣기 String[]을 map getorDefault로 카운팅 카운팅한 map에서 최대값인 key를 뽑아서 배열에 넣음 해당 배열 sorting 첫번째 값 출력 1차 시도 -> 일단 map으로 count랑 묶는거까지 import java.util.ArrayList; import java.util.Arrays; import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.Scanner; import java.util.Map.Entry; public class Main { public cl..

    [LeetCode] - Merge Two Sorted Lists

    두 LinkedList ListNode를 합치는 문제 sudo code null 이면 다른 node return 두 node 비교하고 값이 작은 수를 넣고 큰 수는 next로 넣으면 되지 않을까 근데 재귀함수로 n1.val compare n2.val answer(작은거) 가리킨다 큰거 -> answer.next(큰거) 풀이 /** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode() {} * ListNode(int val) { this.val = val; } * ListNode(int val, ListNode next) { this.val = val; this.next = ..

    [프로그래머스] - 오픈채팅방

    programmers.co.kr/learn/courses/30/lessons/42888 코딩테스트 연습 - 오픈채팅방 오픈채팅방 카카오톡 오픈채팅방에서는 친구가 아닌 사람들과 대화를 할 수 있는데, 본래 닉네임이 아닌 가상의 닉네임을 사용하여 채팅방에 들어갈 수 있다. 신입사원인 김크루는 카카오톡 오 programmers.co.kr 2시간 30분 이상 걸렸는데도 못 풀었다... 능지... openchat function 나누기 sudo 코드 가장 마지막 닉네임으로 해당 uid의 로그를 전부 바꾸면 됨 ArrayList -> String[]에는 Command 그리고 닉네임 String[] -> 0번쨰는 닉네임을 둬서 계속 바뀌게 그 이후로는 Command를 쌓자 1차 시도 String인 map에 order..