youtu.be/ykZZbNCAEJU 안녕하세요! 이번 겨울 방학동안 알고리즘 강의를 진행하게 될 Koala 회장 천수환이라고 합니다! 한 2번 돌려봤는데 제가 봐도 좀 답답하네요... ㅋㅋ 아무쪼록 잘 봐주세요 ㅠㅠ 점점 성장해보겠습니다.. 모의 테스트는 여기서 봐요! 연습 문제는 여기! 커리 큘럼은 다음과 같습니다.
전체 글
항공대 알고리즘 동아리 Koala 🥰문제 링크 codeforces.com/contest/1467 A. Wizard of Orz 문제 0~9까지 표현이 가능한 디지털 패널이 n개가 있다고 한다. 이 패널은 매초 1씩 증가하다가 9가 된 다음 1초 후에는 0으로 다시 표기된다. 이 패널을 멈추면 숫자가 일시정지가 되는데, 만약 패널이 일시정지가 되면 인접한 패널도 1초 뒤에 일시 정지가 되고, 그 일시 정지된 패널의 인접한 패널도 1초 뒤 일시 정지가 되고, ... 이 과정을 반복하여 패널들이 전부 멈출 때까지 반복이 된다고 한다. 디지털 패널을 딱 한 개만 선택하여 멈추게 할 수 있을 때, 패널이 표현할 수 있는 가장 큰 수를 출력하시오. 모든 패널은 전부 0에서부터 시작한다. 풀이 1 더보기 숫자를 0~9중 하나를 선택하는 것인데, 최대 ..
1. 코딩 테스트 준비반 대상 겨울 방학 동안 코딩 테스트 준비를 해보고자 하는 분! 목표 1. 코딩테스트 문제를 보고, 어떤 식으로 풀어야 할지 생각할 수 있는 역량 기르기 2. 좀 더 효율적인 접근, 코드 교정 계획 1. 주 2회 자체 제작 강의를 시청 후 관련 알고리즘 문제를 통해 복습합니다. 2. 문제는 매일 3문제씩 백준 온라인 저지 문제를 선별해 드릴 예정이며 안 풀리는 문제는 멘토들에게 도움을 받거나, 학회 slack에 도움을 요청해서 반드시 풀어야 합니다. 3. 또한 주 2회는 매일 푸는 문제들을 팀즈미팅을 통해 멘토들과 함께 시간을 정해놓고 문제를 풀고, 멘토 주도적으로 리뷰 및 각자 풀이에 대해 피드백하는 시간을 갖습니다. (날짜 및 시간 조정 가능) 4. 특히 어려웠거나, 새로운 내용..
문제 링크 codeforces.com/contest/1471 A. Strange Partition 문제 n개의 정수 배열 a와 정수 x가 주어진다. 원하는 만큼 배열 안에 인접한 원소 두 개를 합쳐 하나로 만들 수 있다. 만약 이 작업을 하면 배열의 원소는 -1씩 줄어든다. 배열의 아름다움이란 배열의 각 원소를 주어진 정수 x로 나눈 후, 올림 한 값들을 더하여 나타내는데, 적당히 작업을 하여, 배열의 아름다움의 최소값과 최댓값을 나타내라. 풀이 1 더보기 나누고 몫을 올림 한다는 것은 원소가 많을 때 이득입니다. 만약 배열 내 원소 k가 있다고 하면, k는 두 가지 경우로 나뉩니다. 1) k가 x로 나누어 떨어지는 경우 : 이 경우 합치나 더하나 차이가 없습니다. 2) k가 x로 나누어 떨어지지 않는 ..
문제 링크 codeforces.com/contest/1472 A. Cards for Friends 문제 n명의 친구들에게 w x h 크기의 종이를 잘라 나누어 주고자 한다. 자르는 데에는 두 가지 규칙이 있다. w가 짝수일 때, 종이는 반으로 잘라 (w/2) x h 크기 종이 2장으로 만들 수 있다. h가 짝수일 때, 종이는 반으로 잘라 w x (h / 2) 크기 종이 2장으로 만들 수 있다. 주어진 w x h 크기 종이를 적당히 잘라 최소 n 조각을 만들 수 있는가? 풀이1 더보기 w, h 는 반드시 "짝수" 여야 종이의 개수를 늘릴 수 있다. 여기서 종이는 정확히 x 조각을 맞출 필요가 없기 때문에, 최대한 늘이는 방향으로 생각하자. 따라서, 종이의 최대 개수는 w, h 를 각각 "더 이상 짝수가 아..
www.acmicpc.net/problem/14565 14565번: 역원(Inverse) 구하기 집합 Zn을 0부터 n-1까지의 정수 집합이라고 하자. Zn ∋ a, b, c 일 때, (a+b) mod n = 0이면 b는 a의 덧셈역이라고 하고 (a*c) mod n = 1이면 c는 a의 곱셈역이라고 한다. 정수 N, A가 주어졌을 때 Zn에서의 A의 www.acmicpc.net 나머지 연산의 덧셈 역과 곱셈 역을 구하는 문제입니다. 덧셈역은 쉽게 구할 수 있지만 곱셈 역은 구하기 어려워보입니다. 1. 덧셈역 구하기 어떤 수 A와 M을 안다고 가정할 때, A%M을 0으로 만드는 덧셈 역 C는 M-A입니다. 이는 생각해보면 매우 간단합니다. 아래의 예를 볼까요? 5 % 13 = 5입니다. 13 % 13 = ..
문제 링크 문제링크 A. Large Digits 알고리즘 Input을 string으로 받아서 index로 각각에 접근하여 해결할 수 있습니다. 정답 코드 #include using namespace std; int foo(string a, string b) { int A = 0; int B = 0; for (int i = 0; i > ..
※ 확장 유클리드 알고리즘은 www.crocus.co.kr/1232 블로그의 도움을 많이 받았습니다. 감사합니다. 1. 추첨상 사수 대작전!(Easy) 풀이 www.acmicpc.net/problem/20410 20410번: 추첨상 사수 대작전! (Easy) 한 줄에 걸쳐 준표가 좋아하는 소수 m, 참가자들이 정한 Seed, 시연으로 공개된 X1, X2 이 주어진다. 항상 가능한 상황만 입력으로 주어진다. www.acmicpc.net 해당 문제에서 M의 범위는 크지 않습니다. 이중 포문을 사용한 브루트 포스를 통해 답을 구할 수 있습니다. #include #include using namespace std; int main() { int m, seed, x1, x2; int a = 0, c = 0, te..
문제 출처 : codeforces.com/contest/1469 A. Regular Bracket Sequence 문제 정확히 하나의 "(", ")" 과 "?"들로 구성된 길이 n의 문자열 s 가 괄호 문자열인지 아닌지를 판단하는 문제입니다. 풀이 1 먼저 괄호문자열이 되지 않는 case 부터 보자면 첫 번째, 문자열 맨 앞에 ")" 가 오거나, 맨 뒤에 "(" 이 오면, 어떠한 위치에 "?"를 배열 하더라도 괄호문자열이 될 수 없습니다. ex) ")??(?)", "??)(" 두 번째, 문자열의 총 길이가 홀수일 경우, 괄호의 짝이 맞지 않으므로 괄호문자열이 될 수 없습니다. 이 두가지를 제외한 나머지 경우는 문자열 s에 "(", ")" 이 한 쌍만 들어간다는 조건이 있기때문에 "?" 문자를 적절히 잘 ..
* 이 글은 "한국항공대학교 - 알고리즘해석 및 설계" 정렬에 나온 내용을 바탕으로 작성하였습니다. 1. 분할 정복 기법 (Divide - and - Conquer) - 착안점 : 문제의 크기가 커지면 더 풀기가 어렵다. - 주어진 문제를 작은 사례로 나누고(Divide) 각각의 작은 문제들을 해결하여 정복(Conquer)하는 방법 - 순환적(recursive)으로 문제를 푸는 하향식(Top - Down) 접근 방법 - 분할 정복의 설계 전략 (1) 문제 사례를 하나 이상의 작은 사례로 분할(Divide)한다. (2) 작은 사례들을 각각 정복(Conquer)한다. 작은 사례가 충분히 작지 않은 이상 재귀를 사용한다. (3) 필요하다면, 작은 사례에 대한 해답을 통합(Combine)하여 원래 사례의 해답을..
안녕하세요! 항공대학교 알고리즘 학회 Koala 에서 이번 겨울방학에 같이 공부하실 분들을 모집합니다! 저희 학회는 프로그래밍 문제 해결 역량을 중요시 하는 현재 기업 채용 추세에 맞춰 알고리즘 스터디를 교외에서 찾을 필요 없이 우리 학교 학생들과 함께 혼자 접근하기 어려운 알고리즘을 다 같이 공부하자는 취지로 만들어졌습니다! 😀저희 학회는 이런 분들에게 추천합니다! ✔알고리즘에 관심이 있으신 분! ✔코딩 꾸준히 해야한다고 생각하는데 혼자하면 안되는 분! ✔삼성, 카카오, 네이버 등 기업 코딩 테스트에 통과하고 싶은데 정보가 없으신 분! ✔acm-icpc, 삼성 scpc 등 알고리즘 대회에 참가하고 싶은데 정보가 없거나 같이 공부할 사람이 없으신 분! 겨울방학 학회 운영 계획 ✅알고리즘 기초 스터디 언어..
이 글은 학회 회원 랑이집사님의 허락을 받아 에브리타임 게시글을 그대로 가져왔습니다. 안녕하세요. 최근 1. 알고리즘 지식보단 구현 2. 삼성 코딩테스트에 대한 글도 있으면 좋겠다 라는 두가지 의견이 있어서 삼성 코딩테스트에서 자주 사용되는 구현 스킬들에 대해서 적어보려고 합니다. 우선 삼성 코딩테스트에 어떤 유형이 나오는지 잘 모르시는 분들을 위해 간략하게 설명드릴게요. 삼성에서는 몇년동안 아래 두 유형만 출제하고 있어요. 1. 시뮬레이션 2. 완전탐색 그중 시뮬레이션은 문제에 나온 내용을 그대로 구현만 하면 되는 문제로, 특별한 알고리즘 지식 없이 문제에 나온대로 구현만 잘 하면 풀 수 있습니다. 그리고 그 구현도 사실 몇가지 틀 안에서 나오니 몇가지 자주 나오는 구현 형태를 익히면 비교적 쉽게 풀 ..