전체 글
백준[15927] - 회문은 회문아니야!!
문제: https://www.acmicpc.net/problem/15927 분류: 문자열 난이도: G5 소요시간: 10m 자아성찰: 문자열,, 분류의 문제라기보단 팰린드롬의 성질을 알면 쉽게 풀 수 있는 문제가 아니었을까 싶다. 시간복잡도는 문자열의 길이
백준[11060] - 점프 점프
문제: https://www.acmicpc.net/problem/11060 분류: DP 난이도: S2 소요시간: 15m 자아성찰: 브루트포스 느낌이 나는 DP 문제인 것 같다. 이전 계산 기록을 기반으로 불필요한 연산을 하지 않도록 하는 매커니즘은 DP가 맞고, 각 미로에 대해 이동할 수 있는 만큼 최소 점프 횟수를 하나하나 체크하는 매커니즘은 브루트포스 느낌이다. 시간복잡도는 각 미로(N
백준[2776] - 암기왕
문제: https://www.acmicpc.net/problem/2776 분류: 이분탐색, 자료구조 난이도: S4 소요시간: 10m 자아성찰: 문제유형을 이분탐색으로 보고 들어왔는데, 로직 상 Hash 자료구조를 쓰는 방식이 더 빠르고 로직도 간단할 것 같다는 생각이 들었다. 이분탐색 시간복잡도 O(log N) Hash 자료구조 contains 시간 복잡도 O(1) 이분탐색 방식으로도 풀어보고, Hash 자료구조를 통해서도 풀어보았다. 예상대로 이분탐색은 1704ms / Hash 자료구조는 1600ms가 나왔다. 여러 방식으로 풀이가 가능할 때는, 시간적 여유가 된다면 가능한 방식으로 다 풀어보자. 2776번: 암기왕 연종이는 엄청난 기억력을 가지고 있다. 그래서 하루 동안 본 정수들을 모두 기억 할 수..
백준[7569] - 토마토
문제: https://www.acmicpc.net/problem/7569 분류: 그래프 탐색, BFS 난이도: G5 소요시간: 20m 자아성찰: N, M, H 3차원 배열에 대해 BFS을 이용해 풀 수 있는 문제로, 모두
백준[16173] - 점프왕 쩰리 (Small)
문제: https://www.acmicpc.net/problem/16173 분류: 그래프 이론, BFS, DFS, 브루트포스 난이도: S4 소요시간: 10m 자아성찰: 맵의 크기가 N x N (N 16173번: 점프왕 쩰리 (Small) 쩰리는 맨 왼쪽 위의 칸에서 출발해 (행, 열)로 나타낸 좌표계로, (1, 1) -> (2, 1) -> (3, 1) -> (3, 3)으로 이동해 게임에서 승리할 수 있다. www.acmicpc.net import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.LinkedList; import java.util.Queue; import ..
[시스템 설계: 한번에 인터뷰 합격하기] 수평 스케일링 vs 수직 스케일링
1. 알고자 하는 것 많은 트래픽에 대응하기 위한 확장성 - 수직 스케일링 vs 수평 스케일링 2. 알게 된 것 확장성이 없는 단일 서버 (Single Server)는 개인 웹사이트와 같이 트래픽이 많지 않고, 서버가 일시적으로 다운되어도 크게 상관이 없는 경우 유용한 설계 방식이 될 수 있다. 돈이 많이 들지 않고, 유지보수가 편하다. 상업 서비스와 같이 한 번에 수백만 명의 트래픽을 감당해야 하는 서버에 대해서는 확장성을 신경써야 한다. 이런 많은 트래픽을 가진 서비스에서 단일 서버 방식은 서버가 다운되면 전체 서비스가 중단되어 버리는 단일 장애점(SPOF, Single Point Of Failure)이 된다. 확장성을 늘리는 방식에는 수직 스케일링 방식과 수평 스케일링 방식이 있다. 수직 스케일링 ..
백준[16435] - 스네이크버드
문제: https://www.acmicpc.net/problem/16435 분류: 정렬, 그리디 난이도: S5 소요시간: 5m 자아성찰: 이전에 알고리즘을 풀었을 때에도 그리디에 많이 약했었다. 가장 기초적인 그리디에 대해 다시 이해하고자 쉬운 문제로 골랐다. 내 기준 그리디의 핵심은 '문제를 스스로 꼬아 풀지 말자' 인데, 이 문제가 그 핵심을 잘 적용할 수 있었던 문제인 것 같다. N 단순하게 정렬로 가장 높이가 낮은 과일부터 차례대로 먹어가며 길이를 늘린다. 문제가 아무리 어려워보여도 일단 단순하게 생각하는 습관을 길러보자. (브루트포스, 그리디) 단순함을 잘 사용하면 생각보다 쉽게 풀린다! 16435번: 스네이크버드 첫 번째 줄에 과일의 개수 N (1 ≤ N ≤ 1,000) 과 스네이크버드의 초기..
백준[1543] - 문서 검색
문제: https://www.acmicpc.net/problem/1543 분류: 문자열, 브루트포스 난이도: S5 소요시간: 15m 자아성찰: 시간복잡도는 O(NM), N
백준[4673] - 셀프 넘버
문제: https://www.acmicpc.net/problem/4673 분류: 수학, 구현, 브루트포스 난이도: S5 소요시간: 10m 자아성찰: 문제를 보았을 때 시간복잡도는 O(n)으로, 브루트포스로 풀 수 있음을 알았다. (n
백준[1436] - 영화감독 숌
문제 : https://www.acmicpc.net/problem/1436 분류: 브루트포스 난이도: S5 소요시간 : 10m 자아성찰 5개월만에 다시 알고리즘을 풀어보았는데, 머리가 굳었다. 오히려 이전에 자주 풀었어서 더 어렵게 생각하는 경향이 있어 오래걸렸다.. 브루트포스는 최대한 단순하게 생각하자. 감을 다시 찾자. 브루트포스부터 천천히 머리를 녹이자. 1436번: 영화감독 숌 666은 종말을 나타내는 수라고 한다. 따라서, 많은 블록버스터 영화에서는 666이 들어간 제목을 많이 사용한다. 영화감독 숌은 세상의 종말 이라는 시리즈 영화의 감독이다. 조지 루카스는 스타워 www.acmicpc.net import java.io.BufferedReader; import java.io.IOExceptio..