profile
그냥 개발자
태그 목록
전체보기 (188)알고리즘(167)BFS(45)시뮬레이션(32)완전탐색(22)DFS(16)JavaScript(12)구현(10)다이나믹프로그래밍(8)운영체제(8)백트래킹(8)수학(7)이분탐색(6)그래프(5)투포인터(5)동적계획법(4)그리디(4)순열(4)다익스트라(3)브루트포스(3)배열돌리기(3)트리(3)자료구조(3)(3)(3)정렬(3)스택(2)비트연산자(2)LRU(2)자바스크립트(2)MST(2)SWEA(2)배열(2)upper bound(2)조합(2)방문체크(2)LFU(2)GCD(2)LCM(2)메모리(2)메모이제이션(2)누적합(2)피보나치(2)lower bound(2)최단거리(2)Event(2)sessionStorage(1)event loop(1)특정순열(1)교착 상태(1)SJF(1)Cleaning Strategy(1)Eschenbach(1)(1)코드포스(1)async(1)프로(1)class(1)디스크 스트라이핑(1)분할정복(1)우선순위큐(1)링크드리스트(1)BigDecimal(1)Debouncing(1)Flexbox(1)데드락(1)유니온파인드(1)정수판별(1)문자열(1)인터럽트(1)error(1)comparator(1)크루스칼(1)은행가 알고리즘(1)고정분할(1)NUR(1)자료형(1)이진완전트리(1)유저모드(1)비트마스킹(1)N-Queen(1)C-SCAN(1)FCFS(1)Lazy loading(1)리액트를 다루는 기술(1)연결리스트(1)부분집합(1)진법변환(1)10진법(1)16진법(1)8진법(1)하노이의 탑(1)플로이드와샬(1)2진법(1)세마포어(1)버디(1)소수(1)html(1)이분그래프(1)FIFO(1)Page Buffering(1)부분수열(1)HashSet(1)localstorage(1)세그먼테이션(1)C(1)유클리드 호제법(1)최소공배수(1)상호배제(1)disjoint set(1)재귀(1)RAID(1)커널모드(1)모든순열(1)다음순열(1)이전순열(1)MOD(1)시맨틱(1)거듭제곱(1)다음큐(1)모니터(1)자바(1)SCAN(1)try catch(1)Map(1)배열인덱스(1)Array.prototype.map()(1)PFF(1)지연로딩(1)Sector Queueing(1)LOOK(1)SLTF(1)Throttling(1)버퍼링(1)파일시스템(1)modal(1)부팅(1)N-step SCAN(1)이진탐색트리(1)비트마스크(1)스레드(1)제곱근(1)페이징(1)정규표현식(1)가상메모리(1)프로세스(1)SSTF(1)tlb(1)Working set(1)clock(1)Load Control(1)Second Chance(1)Event propagation(1)리스트(1)동기화(1)리액트(1)무한스크롤(1)가변분할(1)최대공약수(1)반응형(1)TreeMap(1)Web storage API(1)시간복잡도(1)무한루프(1)스케줄링(1)행렬(1)공간복잡도(1)Event deligation(1)퍼블리싱(1)await(1)

[BOJ 1765] 닭싸움 팀 정하기 (Java)

BOJ 1765 닭싸움 팀 정하기이 문제는 다음의 두 조건이 핵심인데 그 중에서도 두 번째 조건이 중요하다.내 친구의 친구는 내 친구이다.내 원수의 원수도 내 친구이다.그래프 상에서 type이 F인 간선으로 연결되어 있으면 친구다. 따라서 첫 번째 조건인 친구의 친구는

2020년 6월 5일
·
0개의 댓글

[BOJ 1194] 달이 차오른다, 가자. (Java)

BOJ 1194 달이 차오른다, 가자.항상 느끼는 것인데 BFS에서 방문체크는 활용이 무궁무진한 것 같다.가장 기초적인 방문체크는 해당 좌표에 이전에 방문한 적이 있는지 확인한다.다음으로 많이 사용되는 것은 특정 시간에 해당 좌표를 방문한 적 있는가이 문제에서는 특정

2020년 6월 4일
·
0개의 댓글

[BOJ 16931] 겉넓이 구하기 (Java)

BOJ 16931 겉넓이 구하기굉장히 재밌는 문제다. 간단하면서 아이디어를 가지고 푸는 문제는 퀴즈를 푸는 것 처럼 재밌다. 구현 때문에 힘든일도 없고...이 문제는 구조적으로 나눠서 단순화 시키는 것이 핵심이다.위, 아래의 면은 가리는 것이 없기 때문에 N M 2

2020년 6월 1일
·
0개의 댓글

[SWEA 5653] 줄기세포배양 (Java)

SWEA 5653 줄기세포배양줄기세포의 초기 상태를 큐에 넣는다.번식상태의 줄기세포는 우선순위 큐에 넣고 나머지는 다시 큐에 넣는다.우선순위 큐로 BFS를 수행하며 번식하고 새로운 줄기세포는 큐에 넣는다.갓 번식된 줄기세포는 비활성화 상태다.주어진 시간 동안 반복한다.

2020년 6월 1일
·
0개의 댓글

[SWEA 5656] 벽돌 깨기 (Java)

SWEA 5656 벽돌 깨기벽돌을 최대한 많이 깼을 때 남은 벽돌의 수를 구하기 위해 구슬을 던지는 모든 경우의 수를 구한다. (열에 대한 순열)BFS로 벽돌을 깬다.벽돌 사이에 빈 공간이 있는 경우 떨어뜨린다.제일 아래에서 부터 시작해서 위로 올라가며 0을 발견한다.

2020년 6월 1일
·
0개의 댓글

[BOJ 16940] BFS 스페셜 저지 (Java)

BOJ 16940 BFS 스페셜 저지간단한 문제인줄 알고 덤볐다가 큰 코 다친 문제다.단순하게 트리의 같은 레벨에 있는 노드끼리는 방문순서를 바꿔도 된다라고 생각하여 여러가지 구현을 해보았지만 모두 실패하였다. 문제는 바로 큐에 들어가는 순서에 따라서 다음(자식) 노드

2020년 5월 29일
·
0개의 댓글

[BOJ 2146] 다리 만들기 (Java)

BOJ 2146 다리 만들기이 문제를 처음 접했을 때는 알고리즘 공부를 시작한지 얼마되지 않았을 때였다. 몇일 밤을 끙끙 앓다가 못 풀고 던져버린 기억이 있는데 지금 다시 풀어보니 이렇게 쉬울수가... 그만큼 내가 성장했다는거 같아서 약간은 기분이 좋다.각 섬에 대한

2020년 5월 29일
·
0개의 댓글

[SWEA 2117] 홈 방범 서비스 (Java)

SWEA 2117 홈 방범 서비스모든 셀에서 BFS를 수행해서 조건에 부합하는 경우를 찾으면 되는 완전탐색 문제다.마름모 꼴의 크기가 K라고 나와있지만 BFS 사방탐색의 Depth와 같다고 보면된다.

2020년 5월 29일
·
0개의 댓글

[SWEA 1953] 탈주범 검거 (Java)

SWEA 1953 탈주범 검거일반적인 BFS문제인데 여기서 다음을 탐색할 수 있는 조건이 까다로운 문제다.자칫하면 코드가 굉장히 지저분하고 길어질 수 있는데 단순화 시키는 방법이 있다!중요한 것은 현재 위치의 파이프 타입, 다음 위치의 파이프 타입 그리고 다음 위치의

2020년 5월 26일
·
0개의 댓글

[BOJ 16954] 움직이는 미로 탈출 (Java)

BOJ 16954 움직이는 미로 탈출아무것도 아닌 간단한 BFS 문제인데 4시간 가량을 속썩였다... 그냥 시키는대로 하면된다. 사람이 이동하고 벽이 이동하고 조건에 따라 걸러내면된다.내가 오랫동안 발견하지 못한 부분은 바로 첫 위치인 (7, 0)을 큐에 넣을 때 방문

2020년 5월 26일
·
2개의 댓글

[BOJ 16959] 체스판 여행 1 (Java)

BOJ 16959 체스판 여행 1풀이는 이 문서를 참조하였습니다.기본적으로 BFS의 개념으로 풀이하는 문제지만 이런 문제들은 방문할 때의 상태를 추가함으로써 난이도를 상승시킨다. 이 문제에서는좌표말의 종류도착한 시간어떤 목표를 향해 나아가고 있느지의 상태를 저장함으로써

2020년 5월 25일
·
0개의 댓글

[BOJ 16920] 확장 게임 (Java)

BOJ 16920 확장 게임단순 BFS로 구현을 하면되겠지 했지만 많은 우여곡절을 겪은 문제다.처음에는 시뮬레이션 문제 처럼 단순하게 다음과 같이 구현했다.1\. 현재 순서의 플레이어의 성을 모두 찾아서 큐에 넣는다.2\. 플레이어의 확장범위만큼 BFS 탐색하여 성을

2020년 5월 22일
·
0개의 댓글

[BOJ 17071] 숨바꼭질 5 (Java)

BOJ 17071 숨바꼭질 5문제만 보면 BFS의 느낌이 딱! 오는 그런 문제다. 그러나 시간제한이 0.25초로 굉장히 짧아서 BFS가 아닌가? 하는 의문이 들었다. 그래서...50만짜리 배열을 만들고 동생이 50만 이하로 도달하는 시간을 모두 기록했다. 그 후 수빈이

2020년 5월 21일
·
0개의 댓글

[BOJ 16928] 뱀과 사다리 게임 (Java)

BOJ 16982 뱀과 사다리 게임간단하게 BFS로 최소횟수를 구하는 문제였다.사다리와 뱀은 모두 HashMap으로 관리한다.사다리나 뱀을 타는 것은 주사위 횟수에 포함되지 않는다.

2020년 5월 21일
·
0개의 댓글

[프로그래머스] 블록 이동하기 (Java)

프로그래머스 블록 이동하기알고리즘은 친숙한 BFS지만 구현이 굉장히 까다로운 문제였다. 이 블로그를 참조했다.(r1, c1)(r2, c2)와 (r2, c2)(r1, c1)은 같다.내부 코드가 굉장히 복잡하기 때문에 배열 이탈 검사를 하기보다는 패딩을 주는 것이 좋다.경

2020년 5월 6일
·
0개의 댓글

[BOJ 11559] Puyo Puyo (Java)

BOJ 11559 Puyo Puyo현대카드 코딩 테스트를 보고나서 굉장히 충격에 빠졌다. 어렵지 않은 문제들이였는데 만족스러운 결과를 얻지 못했기 때문이다. 요인을 분석해보자면 구현력이 떨어지고 디버깅 과정이 깔끔하지 못하고 멍때리는 시간이 많았다. 반복 학습으로 자주

2020년 4월 26일
·
0개의 댓글

[BOJ 2665] 미로만들기 (Java)

BOJ 2665 미로만들기단순한 BFS인데도 불구하고 굉장히 고민했다... 이 문제는 구불구불하게 갈 수 있다. 즉 최단거리가 아니라 최소로 검은 방을 없애고 가는 것이기 때문에 많은 방을 들리는 것은 상관없다. 따라서왼쪽 위에서 오른쪽 아래로 갱신해가는 DP는 불가하

2020년 2월 27일
·
0개의 댓글

[BOJ 1981] 배열에서 이동 (Java)

BOJ 1981 배열에서 이동투포인터 + BFS 문제다. 투포인터는 두 변수가 변화하면서 상관관계를 만들어낼 때 사용하면 되는 것 같다? 또 모든 문제가 그렇듯이 주어진 문제를 단순화해야한다. 단순화의 가장 쉬운 방법이 변수를 고정하는 것이다.완전탐색으로 풀기에는 너무

2020년 2월 27일
·
0개의 댓글

[BOJ 2842] 집배원 한상덕 (Java)

BOJ 2842 집배원 한상덕이 문제는 투포인터 + 그래프 탐색 문제다. 방문한 칸 중 가장 높은 곳과 가장 낮은 곳의 차이가 피로도라고 한다. 이 때 가장 높은 곳과 가장 낮은 곳을 정하고 탐색 가능 여부에 따라서 가장 높은 곳과 가장 낮은 곳을 조정해나가면 된다.투

2020년 2월 27일
·
0개의 댓글

[BOJ 1939] 중량제한 (Java)

BOJ 1939 중량제한이분탐색을 풀고있어서 이분탐색 + BFS로 풀었지만 다시보니 크루스칼로 푸는게 더 쉬울거 같다.1\. left를 1, right를 다리의 하중 중에 최댓값으로 두고 이분탐색을 실시한다.2\. mid 값을 바탕으로 BFS 그래프 탐색을 수행해서 목

2020년 2월 24일
·
0개의 댓글