목록전체 글 (16)
게으른 개발자
문제 https://www.acmicpc.net/problem/13397 13397번: 구간 나누기 2 첫째 줄에 배열의 크기 N과 M이 주어진다. (1 ≤ N ≤ 5,000, 1 ≤ M ≤ N) 둘째 줄에 배열에 들어있는 수가 순서대로 주어진다. 배열에 들어있는 수는 1보다 크거나 같고, 10,000보다 작거나 같은 자연수 www.acmicpc.net 문제 설명 구간 나누기 나눌 구간 k와 숫자로 구성된 배열이 주어진다. 주어진 배열에서 k개의 구간으로 나누어 각 구간의 최댓값과 최솟값의 차이를 구해 각 구간의 값 중 최댓값이 최솟값이 되는 경우를 찾는 문제이다. 문제에서 주어진 예제 1번은 아래 그림과 같이 구간을 나누었다고 가정해 보자. 위 그림에서 2번째 줄은 주어진 배열이며, 3번째 줄은 나누어..
문제 https://www.acmicpc.net/problem/5624 5624번: 좋은 수 정수 N개로 이루어진 수열 A가 있다. 이때, i번째 수가 그 앞에 있는 수 세 개의 합으로 나타낼 수 있을 때, 그 수를 좋다고 한다. (같은 위치에 있는 수를 여러 번 더해도 된다) 수열이 주어졌을 때 www.acmicpc.net 문제 요약 좋은 수 문제는 주어진 숫자들 중에서 i번째 수 보다 앞에 있는 수 3개를 더해 i번째 수를 만들 수 있다면 i번째 수를 좋은 수라고 한다. 즉, a + b + c = d를 만족하는 d가 몇 개인지를 구하는 문제이다. d보다 앞에 있는 수 중 3개를 뽑는 조합을 모두 구하려면 O(N^3)으로 주어진 문제의 N의 개수가 5000으로 시간 초과가 발생한다. 따라서 수식을 a ..
MAC으로 root파일에 접근하려고 하니 Permission denine이 발생했다. sudo로 실행도 해보고 뭘 해봐도 해결이 안 돼서 구글에 검색해보니 SIP, 시스템 무결성 보호를 해지해야 한다는 글을 보고 해지를 시도했다. 모두 시스템을 다시 시작하면서 cmd + R키를 누르면 복구 모드로 넘어간다는데 cmd + R키를 내가 너무 늦게 눌렀나? 10번은 더 껐다 켜도 macOS 유틸리티 화면은 보이지 않았다... 알고 보니 MAC M1칩은 “Loading startup options”라는 글씨가 나올 때까지 전원 버튼만 꾹 누르고 있으면 된다! Press and hold the power button on your Mac until you see “Loading startup options”. 그..
알고리즘 문제는 주로 파이썬으로 푼다. 원래 C++로 문제를 풀었는데 코드량도 너무 많고, 이것저것 신경 써야 할 부분이 많아서 파이썬으로 넘어왔다. 파이썬으로 알고리즘 문제를 풀면 코드도 간결하고 변수 자료형을 신경 쓰지 않아도 되기 때문에 편하다. 대부분 알고리즘 테스트에 언어 제한을 두지 않지만, 간혹 직군에 따라 언어를 제한하는 경우가 있었다. 파이썬에 익숙해져 있는데 갑자기 다른 언어로 문제를 풀려고 하면 문법도 헷갈리고 시간도 많이 걸린다. 그래서 알고리즘 코딩 테스트 전에 빠르게 공부할 수 있도록 알고리즘에 필요한 자료구조와 문법을 정리해 본다. 데이터 입출력 데이터 입력 및 출력 방법 try (BufferedReader br = new BufferedReader(new InputStream..
문제 https://www.acmicpc.net/problem/1600 1600번: 말이 되고픈 원숭이 첫째 줄에 정수 K가 주어진다. 둘째 줄에 격자판의 가로길이 W, 세로길이 H가 주어진다. 그 다음 H줄에 걸쳐 W개의 숫자가 주어지는데, 0은 아무것도 없는 평지, 1은 장애물을 뜻한다. 장애물이 있 www.acmicpc.net 문제 요약 말이 되고픈 원숭이 문제는 주어진 원숭이의 움직임으로 판(2차원 배열)의 오른쪽 위(0, 0)에서 왼쪽 아래(h-1, w-1)까지의 최단거리를 구하는 문제이다. 주어진 판에서 1은 벽을 의미하며 0은 평지를 의미한다. 원숭이는 벽을 말은 체스의 '나이트'와 같이 움직일 수 있다(말은 장애물을 뛰어넘을 수 있다). 원숭이는 말과 같이 k번 움직일 수 있으며, 말처럼 ..