전체 글 62

[백준 9012] 괄호 / Kotlin

분류 번호 알고리즘 난이도 링크 BOJ 9012 Stack, 문자열 실버 4 풀이 1. 스택 사용 2-1. '(' 일 경우, 스택에 무조건 넣음 2-2. ')' 일 경우 a. 스택이 비어 있으면 NO, 현재 문자열을 검사하는 반복문에 대해서 break b. 스택에 괄호가 있으면 pop 후에 이어서 진행 코틀린 공부도 할 겸, 겸사겸사 오랜만에 알고리즘 풀기 자바 경험에 의존해서 작성하니까 코틀린도 자바스럽게 풀어 버림 😊👌 자바였으면 5분도 안 걸렸을 거 코틀린으로 하려니 아리까리 (ㅠㅠ) 코틀린을 좀 더 코틀린스럽게 짜려면 스프링만 할 게 아니라 코틀린도 해야겠다. (기초만 후다닥 하고 넘어가버리니까 얕은 지식으로 눈 가리고 아웅 하고 있는 듯...ㅠ) 더보기 import java.util.* impo..

알고리즘왕/BOJ 2021.11.22

2021년 상반기 취준 현황

2020년 하반기 NHN 1차 면접 이후로... 난생 처음 면접에 참여할 수 있는 기회를 얻었다. (그것도 4곳이나!) 면접이 며칠 남지 않은 이 시기에 떨리는 마음을 가다듬고자 이번 상반기 취준 현황을 기록해보겠다. 1. 서류 제출 후, 결과 기다리는 중 - SK 주식회사 C&C 채용 연계형 인턴 - GS 홈쇼핑 IT 부문 - 프로그래머스 섬머코딩 (스타트업 인턴 프로그램) - 모두싸인, 솔라커넥트, 미리디, 조아라 2. 서류 전형 불합 - 신한은행 - 가비아 - 신세계아이앤씨 - 스푼 3. 서류 전형 합 - KT SW 개발 (서류 합격하였으나 삼성전자 코테날짜와 인적성시험 날짜가 겹치는 바람에 포기 아쉬워 죽겠음) - 현대오토에버 ICT (따끈따끈한 서류 합격 이틀 전에 합격 메일 받았다 다음주 주말..

일기짱 2021.05.23

[프로그래머스/JAVA] 가장 큰 수

풀이 int 배열을 String 배열로 변경 문자열을 comparator로 정렬 str1 + str2와 str2 + str1를 비교 둘 중 더 크게 만드는 놈을 앞으로 앞에서부터 Stringbuilder에 넣어서 tostring으로 반환 주어진 모든 숫자가 0일 경우 반환값은 "0"이어야 함 비고 ㅋㅋ ㅠㅠㅠ 한줄이면 끝나는 것을./... 정말 어려웠다 ㅠㅠ 더보기 package 연습문제.P42746_가장큰수; import java.util.Arrays; import java.util.Comparator; public class Solution { static public String solution(int[] numbers) { StringBuilder answer = new StringBuilder(..

[프로그래머스/JAVA] 동굴탐험

풀이 위상정렬, deque 사용 현재 방문한 방과 연결된 방 전부를 que의 앞에 넣음 진입차수가 0보다 클 경우 탐색이 불가하므로 que의 뒤에 넣음 비고 queue => deque 했을 뿐인데 효율성 마지막 케이스를 통과했다 ㅎㅂㅎ...! 어렵다 어려워~ 더보기 package KakaoIntern2020.P67260_동굴탐험; import java.util.ArrayList; import java.util.Arrays; import java.util.Deque; import java.util.LinkedList; public class Solution { public static boolean solution(int n, int[][] path, int[][] order) { boolean answe..

[프로그래머스/JAVA] 경주로 건설

풀이 4방탐색/bfs visit 배열 대신 최저 값을 가지고 있는 2차원 int 배열 min을 사용 지금 비용이 min에 저장되어 있는 값보다 크면 continue dr, dc로 선언한 방향의 index가 상-0, 하-1, 좌-2, 우-3으로 index/2 값이 같으면 100원만, 다르면 600원 추가 여기서 상하/좌우 따질 필요없이 직전의 d와 현재 d만 같으면 100원 나머지는 600원 해도 될 듯 어차피 직전 d의 반대방향일 경우 min[][]의 값이 올라서 쓸모 없어짐 비고 if (min[nr][nc] < cost) continue; 처음에는 = 0 && c < N) return true; return false; } static class Node implements Comparable { in..

[프로그래머스/JAVA] 징검다리 건너기

풀이 stones에서 가장 큰 값을 right로 설정하여 이분탐색 진행 mid보다 작은 값이 연속으로 k개 이상 나타날 경우 불가능 => 오른쪽으로 ㄱㄱ (left = mid+1) 반대의 경우 왼쪽으로 => right = mid - 1; 비고 이분탐색... left right 아 어쩌란 말이냐ㅕ~~~~~ 범위 설정이 세상에서 제일 어렵구요 ㅠㅠ 더보기 package KakaoIntern2019.P64062_징검다리건너기; public class Solution { static int solution(int[] stones, int k) { int max = 0; for (int i = 0; i < stones.length; i++) { max = Math.max(stones[i], max); } int ..

[프로그래머스/JAVA] 호텔방배정

풀이 다음으로 묵을 수 있는 방을 관리하는 map (parents) 사용 다음으로 묵을 수 있는 방이 공실인지 아닌지 반복문으로 탐색 묵을 수 없다면 현재 방을 list에 넣어 path로 관리 묵을 수 잇는 곳을 찾으면 지금까지 path 노드들의 다음으로 묵을 수 있는 방을 현재노드+1로 교체 비고 union-find로 풀고 싶었는데 find 함수 구현하려다가 gg 뭔가 머리속에서 그림이 안 그려졌음 ㅠㅠ 더보기 package KakaoIntern2019.P64063_호텔방배정; import java.util.ArrayList; import java.util.HashMap; public class Solution { static long[] solution(long k, long[] room_number..

[프로그래머스/JAVA] 튜플

풀이 문자열을 },{ 을 기준으로 쪼갬 길이순으로 정렬 짧은 것부터 앞에 포함되지 않은 숫자를 찾음 비고 str.split("\\},\\{") 물음표, 별, 더하기, 괄호 등은 메타문자로 사용되기 때문에 반드시 이스케이프 처리해줘야 함 더보기 package KakaoIntern2019.P64065_튜플; import java.util.Arrays; import java.util.Comparator; import java.util.HashSet; import java.util.Set; import java.util.StringTokenizer; public class Solution { static public int[] solution(String s) { int[] answer = {}; s = s.r..

[프로그래머스/JAVA] 보석쇼핑

풀이 보석의 종류는 Set으로 관리 현재 포함하는 보석의 종류는 Map으로 관리 set의 크기와 map의 크기가 같으면 start를 1 늘림 map에서 gems[start]을 제외 map의 크기가 작으면 end를 1 늘림 map에 gems[end] 추가 비고 2중 for문으로 돌렸다가 효율성에서 다 터짐 ㅠㅠ 투포인터 문제! 더보기 package KakaoIntern2020.P67258_보석쇼핑; import java.util.HashMap; import java.util.HashSet; public class Solution { static public int[] solution(String[] gems) { int[] answer = new int[2]; HashSet set = new HashSet..

[프로그래머스/JAVA] 수식 최대화

풀이 연산자가 세가지 뿐이기 때문에 6가지의 경우의 수를 미리 배열에 만들어놓음 연산자를 기준으로 string tokenizer로 분리 return delims를 true로 설정하여 연산자도 반환되게 함 6가지 경우에 수에 대하여 계산 우선순위 순서대로 계산 현재 연산자와 동일한 연산자일 때만 stack에서 하나 꺼내고 list에서 다음 피연산자를 꺼내와 계산 결과를 다시 stack에 넣음 더보기 package KakaoIntern2020.P67257_수식최대화; import java.util.ArrayList; import java.util.List; import java.util.Stack; import java.util.StringTokenizer; public class Solution { sta..