전체 글(31)
-
멋쟁이사자처럼 10기 서류 합격 - 면접 후기 (합격!)
정리안된 블로그라 부끄럽지만 첫 개발 대외활동 지원이라 그 후기를 남겨본다. 작년엔 졸업 작품을 만들고 졸업전시위원회에 참여하게 되서 개발을 공부할 시간이 없었지만 완전히 전향하기로 마음먹은 지금부터 각잡고 개발을 공부하고 여러 프로젝트를 해보고자 멋사에 지원했다. 일단 서류는 합격했다. 나는 프론트엔드로 지원했고, 인스타그램을 살펴보니 프론트엔드 > 백엔드 > 기획/디자인 순으로 경쟁률이 높았다고 한다. 서류는 붙었으니 다음으로 남은 관문은 면접인데, 지인분께 수소문한 결과는 해커톤과 스터디 모든 활동에서 팀 플레이가 강조되다보니 그에 맞춰 답변을 예상하면 될것이라고 한다. 어떻게 서류에 붙어서 감사할 따름.. 멋쟁이 사자처럼 대학을 위해 준비했던 서류의 질문은 아래와 같다. 1. 다양한 IT동아리 중..
2022.03.17 -
[백준] 2292번 : 벌집 C++
시간제한 메모리제한 알고리즘 분류 2 초 128 MB 수학 문제 위의 그림과 같이 육각형으로 이루어진 벌집이 있다. 그림에서 보는 바와 같이 중앙의 방 1부터 시작해서 이웃하는 방에 돌아가면서 1씩 증가하는 번호를 주소로 매길 수 있다. 숫자 N이 주어졌을 때, 벌집의 중앙 1에서 N번 방까지 최소 개수의 방을 지나서 갈 때 몇 개의 방을 지나가는지(시작과 끝을 포함하여)를 계산하는 프로그램을 작성하시오. 예를 들면, 13까지는 3개, 58까지는 5개를 지난다 입력 첫째 줄에 N(1 ≤ N ≤ 1,000,000,000)이 주어진다. 출력 입력으로 주어진 방까지 최소 개수의 방을 지나서 갈 때 몇 개의 방을 지나는지 출력한다. 예제 입력 13 예제 출력 3 처음 시도한 코드 (런타임 에러 및 틀렸습니다!)..
2022.03.09 -
[알고리즘을 위한 수학이론] 유클리드 호제법을 PS에 적용하기 -1 (Ft. C++)
유클리드 호제법 학교에서 수학을 배울 때 정수 단원에서 잠깐 소개되었었던 그 이론을 다시 알아보고, 백준 문제와 함께 천천히 익혀보자. 두 개의 양수 a와 b의 최대공약수를 구하려면 "a와 b를 소인수분해"하면 된다. 이 때 손으로 하나하나 인수분해하며 푸는 방법도 있지만, 사람이 계산할 수 없을 만큼 매우 큰 두 수의 최대 공약수를 구해야한다면 컴퓨터를 이용해야한다. 이를 위해 PS에선 "유클리드 호제법"을 사용한다. 유클리드 호제법에 대한 이론적인 설명은 다음과 같다. (출처: 수학독본, 한길사) 두 양수 a, b가 있고 a>=b일때, a를 b로 나눈 몫을 q, 나머지를 r이라고 하자. a = b*q+r 00이라면 위 식에서 r = a - b*q 이고, a와 b의 임의의 공약수 e가 있다고 할 때 우..
2022.02.28 -
[알고리즘] 문자열 매칭 알고리즘 - KMP (Knuth-Morris-Pratt) Pattern matching
아래 링크 강의를 수강하고 정리하였습니다. 기초 학습 단계로 부정확한 정보가 있을 수 있습니다. https://youtu.be/yWWbLrV4PZ8 / 나동빈님의 실전 알고리즘 강좌 34강 https://www.youtube.com/watch?v=UcjK_k5PLHI / 코드없는프로그래밍님의 String 강좌 https://youtu.be/GTJr8OvyEVQ / Tushar Roy - KMP Pattern matching 문자열 매칭 알고리즘이란, 특정한 글이 있을 때 그 글안에서 주어진 문자열을 찾는 알고리즘이다. 이전까지 문자열을 찾는 경우에는 브루트포스처럼 O(nm)의 시간을 소요해 문자열을 찾았었다. 이 과정에 KMP 문자열 매칭 알고리즘, 라빈-카프 문자열 매칭 알고리즘을 도입해 매칭에 소요하..
2022.01.20 -
[C++]BOJ 10809번 : 알파벳 찾기
시간제한 메모리제한 알고리즘 분류 1 초 256 MB 구현, 문자열 문제 알파벳 소문자로만 이루어진 단어 S가 주어진다. 각각의 알파벳에 대해서, 단어에 포함되어 있는 경우에는 처음 등장하는 위치를, 포함되어 있지 않은 경우에는 -1을 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 단어 S가 주어진다. 단어의 길이는 100을 넘지 않으며, 알파벳 소문자로만 이루어져 있다. 출력 각각의 알파벳에 대해서, a가 처음 등장하는 위치, b가 처음 등장하는 위치, ... z가 처음 등장하는 위치를 공백으로 구분해서 출력한다. 만약, 어떤 알파벳이 단어에 포함되어 있지 않다면 -1을 출력한다. 단어의 첫 번째 글자는 0번째 위치이고, 두 번째 글자는 1번째 위치이다. 제한 0 ≤ S의 길이 ≤ 100 문제 해결 ..
2022.01.18 -
[C++] BOJ 18870번 : 좌표 압축
시간제한 메모리제한 알고리즘 분류 2 초 512 MB 정렬, 값 / 좌표 압축 문제 수직선 위에 N개의 좌표 X1, X2, ..., XN이 있다. 이 좌표에 좌표 압축을 적용하려고 한다. Xi를 좌표 압축한 결과 X'i의 값은 Xi > Xj를 만족하는 서로 다른 좌표의 개수와 같아야 한다. X1, X2, ..., XN에 좌표 압축을 적용한 결과 X'1, X'2, ..., X'N를 출력해보자. 입력 첫째 줄에 N이 주어진다. 둘째 줄에는 공백 한 칸으로 구분된 X1, X2, ..., XN이 주어진다. 출력 첫째 줄에 X'1, X'2, ..., X'N을 공백 한 칸으로 구분해서 출력한다.첫째 줄에 S의 최솟값을 출력한다. 제한 1 ≤ N ≤ 1,000,000 -10^9 ≤ Xi ≤ 10^9 문제 해결 조건 ..
2022.01.14 -
[C++] BOJ 1431번 : 시리얼 번호
#include #include #include #include using namespace std; /* 문제 조건 1. 길이 다름: 시리얼번호가 짧은 것 2. 길이 같: 모든 자리수 합이 작은 것 (숫자) 3. 둘다 같: 사전순 . 숫자 = '0' && str[i]= '9' 일때, sum += str[i]-'0'; */ int sumOfSerial(const string& a) { int sum = 0; for (int i = 0; i = '0' && a[i] > n; vector v(n); f..
2022.01.13 -
[C++] BOJ 15889번 : 호 안에 수류탄이야!!
시간제한 메모리제한 알고리즘 분류 2 초 512 MB 그리디, 정렬, 스위핑 문제 “호 안에 수류탄!!” 대한건아 욱제는 수류탄 투척 훈련을 받고 있다. 욱제를 필두로, 훈련장에는 욱제를 포함한 N명의 전우들이 일렬(1열 횡대 ㅎ)로 서있다. 군대에 끌려온 사실에 심술이 난 욱제는 수류탄의 안전핀을 뽑아 전우에게 던졌다. 마찬가지로 심술이 난 전우들도 욱제가 던진 수류탄을 받아 전우들에게 던지기 시작했다. 이제 수류탄은 뜨거운 감자처럼 욱제와 전우들 사이를 옮겨 다닌다. 전우들은 팔 힘이 모두 다르기 때문에 수류탄을 던질 수 있는 사거리도 모두 다르다. 욱제와 전우들이 가지고 노는 훈련용 수류탄은 바닥에 떨어지기 전에는 절대 터지지 않는 특수한 수류탄이다. 욱제와 전우들은 특급 전사이기 때문에 사거리 내..
2022.01.13