전체 글(37)
-
[PS] 백준 15501 - 부당한 퍼즐
문제 https://www.acmicpc.net/problem/15501 15501번: 부당한 퍼즐 현욱은 퍼즐 게임을 굉장히 좋아한다. 어느 날 현욱은 친구로부터 간단한 플래시 퍼즐 게임을 하나 추천 받았는데, 이 퍼즐 게임은 다음과 같은 규칙을 갖고 있다. 플레이어는 1 ~ n 까지 숫자가 � www.acmicpc.net 해설 이 문제는 오히려 어렵게 생각하면 한없이 어려워질 수 있는 유형의 문제이다. 알고리즘을 어느 정도 공부한 입장에서 처음 문제를 본다면 '뒤집기'와 '좌우로 밀기'를 반복하면서 완전 탐색으로 구현하거나 BFS를 떠올리기 쉽다. 하지만 최대 1,000,000의 n 입력이 주어진다면 메모리 초과 or 시간 초과를 면치 못할 것이다. 그렇다면 문제를 다시 한번 읽고 예제 입력 1을 살..
2020.05.04 -
본격 vim editor customizing
서론 vim은 에디터로 가장 유명한 vscode와 같은 에디터입니다. 이번 포스팅을 통해 안그래도 강력한 vim editor를 IDE처럼 사용할 수 있도록 customizing을 해보겠습니다. vim은 너무나도 편리하고 유용하다고 잘 알려져있기 때문에 이에대한 플러그인들이 많이 존재합니다. 또한 미리 많이 사용하는 플러그인들을 모아서 구성해 놓은 neo vim이나 space vim 등이 존재하기 때문에 단순히 패키지 설치를 통해 다양한 플러그인들이 설치되어진 vim을 빠르게 사용할 수 있습니다. 그러나 앞서 말한 vim 패키지를 필자가 사용해본 결과 사용하지않는 플러그인들이 설치되어 있어서 다소 무거운 느낌을 받았습니다. 또한 키 맵핑이 그 vim 패키지 메뉴얼에 따라 약간의 변화가 있어서 직접 cust..
2020.05.03 -
SQL와 NoSQL
데이터베이스의 두 가지 타입으로 나누면 SQL과 NoSQL으로 구분할 수 있다. 그에 대한 설명을 서로의 차이를 통해 간단히 해보려고한다. SQL? Structured Query Language(구조적 질의어)의 약자로 DB에서 자료를 처리하는 용도로 쓰인다. 보통 우리가 일반 DB나 관계형 DB를 말하면 SQL을 의미하는 경우가 많다. 대표적으로 MariaDB, MySQL등이 존재한다. NoSQL? Not only SQL로, SQL만을 사용하지 않는 데이터베이스 관리 시스템(DBMS)를 말한다. 관계형 데이터베이스를 사용하지 않는다는 의미가 아닌, 여러 유형의 데이터베이스를 사용하는 것이다. 대표적으로 mongoDB, Firebase의 datastore등이존재한다. 눈치가 빠르면 위 내용만으로 어느정도..
2020.05.03 -
[PS] 백준 2933 - 미네랄
* 문제 링크 https://www.acmicpc.net/problem/2933 2933번: 미네랄 창영과 상근은 한 동굴을 놓고 소유권을 주장하고 있다. 두 사람은 막대기를 서로에게 던지는 방법을 이용해 누구의 소유인지를 결정하기로 했다. 싸움은 동굴에서 벌어진다. 동굴에는 미네랄�� www.acmicpc.net 문제 이해 1. 주어지는 입력은 동굴의 상태로써 기존에 많이 풀었던 문제와 달리 테트리스 같은 높이가 있는 문제이다. 2. "각 칸은 비어있거나 미네랄을 포함하고 있으며, 네 방향 중 하나로 인접한 미네랄이 포함된 두 칸은 같은 클러스터이다 " 문제의 이 내용이 처음에 이해가 잘 안 갔었는데 결국에는 한 칸이 미네랄이고 칸이 붙어있으면은 클러스터라는 뜻이다. 3. 두 사람이 번갈아가며 막대기를..
2020.05.03 -
[알고리즘] 정렬(7) : 위상정렬 (Topological Sorting)
목차 1. 위상정렬의 개념 2. 위상정렬의 구현 3. 위상정렬 코드 개념 위상정렬은 방향이 있는 그래프에서 정점들 간의 선후 관계를 위배하지 않도록 정렬하는 방법입니다. 위상정렬에 대하여 설명하기 앞서 간단한 위상정렬의 예시에 대해 알아보겠습니다. 위상 정렬은 선수과목이 있는 대학교의 커리큘럼을 생각하면 이해하기 쉽습니다. 다음과 같은 커리큘럼이 존재할 때 임베디드 시스템이라는 과목을 수강하기 위해서는 어떠한 순서로 과목을 수강해야 할까요? 여러가지 방법이 있겠지만 한 예시로 다음과 같은 수강 방법을 들 수 있습니다. UNIX 시스템 → 어셈블리 언어 → 논리회로 설계 → 운영체제 → 컴퓨터 구조론 → 마이크로프로세서 → 임베디드 시스템 하지만 선수과목이 존재하기 때문에 다음과 같은 선후관계는 반드시 지..
2020.05.03 -
[SW 역량테스트 기출풀이] 백준 14890 - 경사로
* 문제 링크 https://www.acmicpc.net/problem/14890 14890번: 경사로 첫째 줄에 N (2 ≤ N ≤ 100)과 L (1 ≤ L ≤ N)이 주어진다. 둘째 줄부터 N개의 줄에 지도가 주어진다. 각 칸의 높이는 10보다 작거나 같은 자연수이다. www.acmicpc.net * 문제 유형 주어진 조건에 맞게 경사로만 설치해주면 되는 전형적인 시뮬레이션 * 문제 해설 시뮬레이션유형의 문제를 풀 때는 주어진 조건을 꼼꼼하게 읽는 것이 중요하다. (필자는 꼼꼼하지 못한 탓에 경사로 위에 경사로를 놓으면 안된다는 것을 읽지 못하고 2시간동안 삽질했다.) 시간제한은 2초, 지도의 크기는 최대 100X100이고 (1
2020.04.26