profile
공부 일기
태그 목록
전체보기 (98)자바(70)알고리즘(55)백준(48)DFS(16)BFS(11)구현(11)프로그래머스(9)다이나믹 프로그래밍(9)DP(6)2019 카카오 인턴십(5)카카오(4)카카오 인턴십 2020(4)조합(4)스택(3)정렬(3)Union Find(2)Java(2)(2)이진탐색(2)우선순위큐(2)투포인터(2)순열(1)이분 그래프(1)동굴 탐험(1)호텔 방배정(1) 크레인 인형뽑기 게임(1)단어 변환(1)arrays(1)삼성(1)1920(1)2020 카카오 인턴십(1)2차원배열(1)분할 정복(1)부분합(1)SW적성진단(1)floyd-warshall(1)튜플(1)Arrays.sort(1)문자열 조작(1)회전시키기(1)디스크 컨트롤러(1)이중우선순위큐(1)SJF(1)서로소(1)Deque(1)스택/큐(1)2156(1)1차(1)최소힙(1)체육복(1)징검다리 건너기(1)이분매칭(1)최대힙(1)가장 긴 증가하는 부분 순열(1)부분 순열(1)String(1)슬라이딩 윈도우(1)배열 조합 생성하기(1)SSAFY 6기(1)불량 사용자(1)코드업(1)Lv.1(1)경주로 건설(1)카드 정렬(1)1931번(1)그리디(1)정규식(1)위상 정렬(1)HashMap(1)최단경로(1)키패드 누르기(1)후위표기식 변환(1)정수의 문자열화(1)카카오 공채(1)다익스트라 알고리즘(1)그리디 알고리즘(1)1541번(1)기능개발(1)이진 탐색(1)여행경로(1)보석 쇼핑(1)SSAFY(1)최단 경로(1)수식 최대화(1)방향성 그래프(1)1015(1)String 메서드(1)set(1)2206(1)문자열 정규식(1)페이스북 인터뷰(1)후위표기식 계산(1)후위표기식(1)2차원 배열의 정렬(1)이분 탐색(1)1504(1)LCS(1)getOrDefault()(1)문자열 매칭(1)

백준 1918번 후위 표기식

중위 표기식을 후위 표기식으로 변환하는 문제이다. 일단 괄호 연산자를 처리하기 위해 후입선출의 자료구조가 필요하므로 스택을 사용할 것입니다.만날 수 있는 charcter의 경우에 따라 처리해야 할 동작을 살펴보겠습니다.(을 만난다면?\-> (을 만나면 그냥 스택에 넣습

3일 전
·
0개의 댓글

백준 1920 수 찾기

풀이 코드문제 자체는 이분 탐색으로 풀면 어렵지 않은 문제이니 문제 관련해서 보다는 이분 탐색에 대해 알아보자정렬이 되어 있는 상태에서 범위를 절반으로 좁혀 나가면서 탐색해 나가는 방식이다. 현재 수 찾기 문제처럼 정렬되어 있는 수들에서 특정 값을 찾아내는 문제는 아주

2021년 7월 24일
·
0개의 댓글

백준 1707 이분 그래프

풀이 코드노드와 간선의 정보가 주어질 때 이 그래프가 이분 그래프이냐를 판단하는 문제이다.결국 이분 그래프는 집단이 2개로 나뉘면 된다. 그렇다면 A 집단을 1로 채우고 B 집단을 2로 채운다고 했을 때 노드 두 개가 연결되어 있음에도 불구하고 같은 집단에 속해 있다면

2021년 7월 15일
·
0개의 댓글

백준 2293번 동전1

풀이 코드dp0 = 1로 초깃값을 설정하고 단계별로 점화식을 진행해 나간다.j원을 만들 수 있는 경우의 수는 모든 동전들을 사용한 경우각각의 수들을 다 더하면 된다. 문제에서 주어진 예시 입력값이다. 예를 들어 현재 dp2를 구한다고 하자. 2원을 만들 수 있는 경우의

2021년 7월 14일
·
0개의 댓글

백준 2638번 치즈

풀이 코드BFS의 응용 문제이다. 해결 방안을 선뜻 생각하기 어렵다.치즈의 두 면 이상이 공기와 접촉하면 그 치즈는 1시간 뒤에 녹는다고 했다. 그런데 치즈의 안쪽 부분에 존재하는 치즈는 두 면 이상이 공기와 접촉해도 녹지 않는다. 핵심은 치즈의 안쪽 부분과 바깥쪽 부

2021년 7월 14일
·
0개의 댓글

백준 1780번 종이의 개수

풀이 코드문제에서 주어진 대로 구현하면 된다.먼저 원소들이 모두 같은지 확인한다. 모두 같다면 그냥 종이의 개수에 더해주고 같지 않다면 인덱스를 구간 별로 나누어서 다시 원소들이 모두 같은지 확인한다. 이 과정을 반복하면 문제를 해결할 수 있다.구간은 좌측 상단, 중앙

2021년 7월 14일
·
0개의 댓글

백준 14889 스타트와 링크

풀이 코드문제에서 하라는 대로만 구현하면 된다. 스타트 팀, 링크 팀이 가능한 경우의 수를 모두 계산해서 능력치 차이의 최솟값을 갱신해 나가면 된다.하나의 팀이 가능한 조합을 모두 살펴보면 나머지 한 팀의 조합은 정해지게 되니까 한 팀의 조합만 구해보면 된다. 1 2

2021년 7월 14일
·
0개의 댓글

백준 11375번 열혈강호

문제풀이 코드강호네 회사에는 직원이 N명이 있고, 해야할 일이 M개가 있다. 직원은 1번부터 N번까지 번호가 매겨져 있고, 일은 1번부터 M번까지 번호가 매겨져 있다.각 직원은 한 개의 일만 할 수 있고, 각각의 일을 담당하는 사람은 1명이어야 한다.각각의 직원이 할

2021년 7월 14일
·
0개의 댓글

백준 11722번 가장 긴 감소하는 부분 순열

풀이 코드끝 점 고정후 앞에서 부터 비교하며 갱신해 나가는 것이 핵심이다.10 30 10 20 20 10을 예시로 살펴보자.dp0 = 1이다.dp1 은 30을 고정한 상태에서 10과 비교해서 30이 더 크므로 감소하는 부분 순열이 아니다. 따라서 dp1은 그냥 1이다.

2021년 7월 8일
·
0개의 댓글
post-thumbnail

백준 9251번 LCS

풀이 코드유명한 최장 공통 부분 수열에 관한 문제이다. 최장 공통 부분 수열이란 두 수열이 주어졌을 때, 모두의 부분 수열이 되는 수열 중 가장 긴 것을 찾는 문제이다.예를 들어, ACAYKP와 CAPCAK의 LCS는 ACAK가 된다.SSAFY 적성진단을 공부하면서 손

2021년 7월 8일
·
0개의 댓글

백준 1912번 연속합

풀이 코드

2021년 7월 8일
·
0개의 댓글

백준 9465번 스티커

풀이 코드이전 RGB 거리 문제에서의 해결 방식과 동일하다.n번째 열에서 아무것도 안뽑은 경우, 위에 거를 뽑은 경우, 아래 거를 뽑은 경우를 모두 계산해서 최솟값을 갱신해 주면 된다.

2021년 7월 8일
·
0개의 댓글

백준 1149번 RGB거리

풀이 코드i번째 집에 빨강을 칠했을 때, 초록을 칠했을 때, 파랑을 칠했을 때를 구분하여 최솟값을 갱신 해 나간다.서로 이웃한 집은 색깔이 달라야 하는 것을 이용하면 두 가지 경우만 비교하면 된다.예를 들어 3번째 집이 파랑색이라면 2번째 집이 빨강색일 때와 초록색일

2021년 7월 8일
·
0개의 댓글

백준 1697 숨바꼭질

풀이 코드뭔가 BFS인데 다이나믹 프로그래밍스러운 문제였다. 새로운 유형의 BFS 문제여서 고민도 많이 했고 유익한 문제였던 것 같다.수빈이의 위치에서 -1칸, +1칸, \*2 칸 이동할 수 있기 때문에 다 해보면 된다. 그것을 BFS를 통해 진행하고 가장 빨리 동생의

2021년 7월 1일
·
0개의 댓글

백준 2468 안전 영역

풀이 코드영역의 개수를 구하는 문제인데 수위의 높이에 따라 달라지는 영역의 개수들의 최댓값을 구해야 한다.수위의 높이를 0에서 100까지만 살펴보면 되기 때문에 완전 탐색으로 문제를 해결하면 된다.

2021년 7월 1일
·
0개의 댓글

백준 1987 알파벳

풀이 코드말은 상하좌우로 이동하는데 이동하는 곳의 알파벳이 모두 달라야 한다. 이 때 최대로 지날 수 있는 칸의 개수를 구하는 문제이다.지금까지 지나온 알파벳을 알아야 하기 때문에 지나왔던 알파벳을 저장할 저장공간이 추가로 필요하다. 이것은 입력과 삭제가 간편한 Has

2021년 7월 1일
·
0개의 댓글

백준 10026 적록색약

풀이 코드R 구역의 수, G 구역의 수, B 구역의 수를 구하는 문제이다. 구역의 조건은 상하좌우가 모두 같은 색으로 칠해져 있어야 한다.그런데 여기서 적록색맹은 R과 G를 구분하지 못하므로 R과 G는 같은 구역으로 인식한다. 적록색맹의 입장에서 구역의 수도 추가로 구

2021년 7월 1일
·
0개의 댓글

백준 1987번 알파벳

풀이 코드변수의 범위가 1에서 20 사이로 비교적 작기 때문에 DFS로 모든 경로를 탐색한 후 가장 큰 경로의 길이를 찾아내면 된다. 이를 위해 필요한 자료구조는 다음과 같다보드 내용을 저장할 2차원 char형 board 배열지금까지의 경로에서 지나간 알파벳을 저장할

2021년 6월 29일
·
0개의 댓글

백준 2206 벽 부수고 이동하기

풀이 코드맵은 벽(1) 과 지날 수 있는 길(0) 로 구성되고 시작점(1,1) 에서 끝점(N,M) 까지의 최단 거리를 구하는 문제에서 벽을 한 번 깰 수 있는 기회가 주어진다는 점이 다르다.기본적으로 최단 거리는 BFS로 구하는 것으로 많은 문제를 풀어보았다. 갈 수

2021년 6월 21일
·
0개의 댓글
post-thumbnail

백준 2178번 미로 탐색

풀이 코드너비 우선 탐색(BFS)를 통해 (1,1) 에서부터 연결된 부분으로 가중치를 계산해 나가면서 탐색하면 된다. 한 칸 이동하는데 거리가 1이기 때문에 BFS로 해결이 되는 것이고 만약 인접한 곳을 이동하는데에 비용이 모두 다르고 도착하는 최단 비용을 찾는 문제라

2021년 5월 31일
·
0개의 댓글