코딩테스트 (8) 썸네일형 리스트형 나의 코딩테스트 공부법 안녕하세요. 게임클라이언트로 근무하고 있는 두부입니다. 최근 홍정모 교수님이 알고리즘의 중요성에 대해 많이 이야기해주셨는데, 제가 이번에 쓰는 대상은 교수님이 말씀하신 근본적인 알고리즘과는 거리가 좀 있을지 모르겠지만, 그래도 코딩테스트 문제풀이를 준비하시는 분들에게 저의 경험과 공부방법을 공유해보고자 이런 글을 작성하게 되었습니다. 평소 조금씩 알고리즘을 공부해오다가 어느날 이직이 하고싶어서 국내 이런저런 회사에 코딩테스트를 봤는데 보는 곳 마다 합격해버리고 심지어 한 회사에서 제가 코딩테스트 제일 잘 본 편이라는 말까지 듣게되는 경험을 하게 되었습니다. 제가 본 회사중에 코딩테스트 컷이 높은 회사가 없기도 하였지만.. 뒤늦게 알고리즘 시작한 사람으로써 이렇게 공부하고 이정도 결과를 만들었다는 걸 .. [cpp]자물쇠와 열쇠 - 2020 카카오 블라인드 채용 고고학자인 “튜브”는 고대 유적지에서 보물과 유적이 가득할 것으로 추정되는 비밀의 문을 발견하였습니다. 그런데 문을 열려고 살펴보니 특이한 형태의 자물쇠로 잠겨 있었고 문 앞에는 특이한 형태의 열쇠와 함께 자물쇠를 푸는 방법에 대해 다음과 같이 설명해 주는 종이가 발견되었습니다. 잠겨있는 자물쇠는 격자 한 칸의 크기가 1 x 1인 N x N 크기의 정사각 격자 형태이고 특이한 모양의 열쇠는 M x M 크기인 정사각 격자 형태로 되어 있습니다. 자물쇠에는 홈이 파여 있고 열쇠 또한 홈과 돌기 부분이 있습니다. 열쇠는 회전과 이동이 가능하며 열쇠의 돌기 부분을 자물쇠의 홈 부분에 딱 맞게 채우면 자물쇠가 열리게 되는 구조입니다. 자물쇠 영역을 벗어난 부분에 있는 열쇠의 홈과 돌기는 자물쇠를 여는 데 영향을 .. [cpp]카카오프렌즈 컬러링북 - 2017 카카오코드 예선 그동안 푼 문제들을 하나씩 정리해서 조회수를 올려야겠다. 카카오 문제 위주로 올리면 많이 보겠지? 이 문제는 대표적인 BFS/DFS 문제로 정말 흔하게 많이 나오는 문제이다. 처음에 접근하기 힘들 수는 있지만, 유형만 익혀두면 쉽게 풀 수 있는 문제이니 이러한 유형을 꼭 익혀주도록 하자. 문제를 보자마자 기본 템플릿을 지워버려서 몰랐는데 전역변수 사용시 함수 안에서 초기화를 해야한다고 한다. 풀이 1. 최대 영역 구하기 그림의 영역 구분은 '상하좌우로 연결되어 있는지' 를 기준으로 한다. 따라서 탐색의 시작 좌표를 기준으로 상하좌우로 같은 색깔이 몇개나 있는지 체크해주면 된다. 이때 탐색은 (0,0) 영역부터 (m,n)영역까지 순차적으로 이동하며 수행한다. 같은 공간을 두번 체크하지 않도록 2차원 boo.. 제로베이스(패캠) 코딩테스트 합격반 전액환급 달성 후기 제로베이스(구 패스트캠퍼스) 알고리즘 코딩테스트 합격 51일 완주반 강의에서 전액 환급 달성에 성공했다. 제로베이스는 이전 패스트캠퍼스에서 완주반으로 있던 강의들이 독립해서 나온 강의 플랫폼이고, 기존 패캠에서 진행하던 완주반 강의들은 이제 제로베이스에서 운영하게 되었다. 블로그에 패스트캠퍼스 강의를 들으며 공부일기를 올리다 보니, 패스트캠퍼스 완주반 강의에 대해 물어보는 사람들이 있었고, 전액 환급받은 것도 자랑할 겸 이 글을 작성하게 되었다. 이번에 들은 강의는 파이썬으로 진행하는 알고리즘 완주반이고, 얼마 전에 코딩테스트 합격반으로 이름이 바뀌었다. 알고리즘 공부는 하고 싶었는데 계속 다른 핑계를 대며 공부를 안 하고 있는 나를 벌주기 위해 바쁜 와중에 완주반을 신청해서 수업을 듣기 시작했다. 내가.. 수식최대화 - 2020 카카오 인턴십 코딩테스트(파이썬) 나도 카카오 문제를 풀어봤다! 문제 IT 벤처 회사를 운영하고 있는 라이언은 매년 사내 해커톤 대회를 개최하여 우승자에게 상금을 지급하고 있습니다. 이번 대회에서는 우승자에게 지급되는 상금을 이전 대회와는 다르게 다음과 같은 방식으로 결정하려고 합니다. 해커톤 대회에 참가하는 모든 참가자들에게는 숫자들과 3가지의 연산 문자(+, -, *) 만으로 이루어진 연산 수식이 전달되며, 참가자의 ‘미션’은 전달받은 수식에 포함된 연산자의 우선순위를 자유롭게 재정의하여 만들 수 있는 가장 큰 숫자를 제출하는 것입니다. 단, 연산자의 우선순위를 새로 정의할 때 같은 순위의 연산자는 없어야 합니다. 즉, + > - > * 또는 - > * > + 등과 같이 연산자 우선순위를 정의할 수 있으나 +,* > - 또는 * > .. 백준4828번 - XML 자바스크립트(Node.js)풀이 난이도: 플래티넘 4 문제 인터넷프로그래밍 교수 이다솜은 XML이야말로 세상을 바꿀 혁신적인 언어라고 믿으며, 항상 학생들에게 XML의 장점을 어필한다. 그러나 잘못 사용되었다가는 지구를 파괴할 수도 있는 무시무시한 부작용도 존재하기에, 문법이 맞게 되었는지를 판정하는 파서가 필요하게 되었다. 그러나 이다솜은 XML을 할 줄 모르기에 여러분이 판독기를 구현해야 한다. 우리가 XML 문서의 형식이 유효한지 판별하는 기준은 다음과 같다. 평문---32~127 사이에 있는(32, 127도 포함) ASCII코드값으로 이루어지며, 다음 문자는 포함되면 안 된다: , & 다음과 같은 문자열: & 이것들은 각각 , &를 인코딩한다. &xHEX; HEX는 양의 짝수 자릿수의 16진수여야 하며, 0~9 또는 알파.. 백준2960번 - 에라토스테네스의 체 자바스크립트(Node.js)풀이 문제 에라토스테네스의 체는 N보다 작거나 같은 모든 소수를 찾는 유명한 알고리즘이다. 이 알고리즘은 다음과 같다. 2부터 N까지 모든 정수를 적는다. 아직 지우지 않은 수 중 가장 작은 수를 찾는다. 이것을 P라고 하고, 이 수는 소수이다. P를 지우고, 아직 지우지 않은 P의 배수를 크기 순서대로 지운다. 아직 모든 수를 지우지 않았다면, 다시 2번 단계로 간다. N, K가 주어졌을 때, K번째 지우는 수를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 N과 K가 주어진다. (1 ≤ K < N, max(2, K) < N ≤ 1000) 출력 첫째 줄에 K번째 지워진 수를 출력한다. 문제유형 수학 구현 정수론 소수 판정 에라토스테네스의 체 에라토스테네스의 체를 몰라도 문제만 잘 읽으면 풀 수 있는 문제이다.. 백준1038번 - 감소하는 수 자바스크립트(Node.js)풀이 문제 음이 아닌 정수 X의 자릿수가 가장 큰 자릿수부터 작은 자릿수까지 감소한다면, 그 수를 감소하는 수라고 한다. 예를 들어, 321과 950은 감소하는 수지만, 322와 958은 아니다. N번째 감소하는 수를 출력하는 프로그램을 작성하시오. 0은 0번째 감소하는 수이고, 1은 1번째 감소하는 수이다. 만약 N번째 감소하는 수가 없다면 -1을 출력한다. 입력 첫째 줄에 N이 주어진다. N은 1,000,000보다 작거나 같은 자연수 또는 0이다. 출력 첫째 줄에 N번째 감소하는 수를 출력한다. 문제유형 브루트포스 알고리즘 백트래킹 백줄이 넘어가는 정말 보기힘든 코드로 풀고있다가 너무나도 신박한 풀이를 발견하였다. 이 풀이를 nodejs 코드로 변환하고 산책을 하면서 코드를 이해해보았다. encrypted.. 이전 1 다음