이 글은 학회 회원 랑이집사님의 허락을 받아 에브리타임 게시글을 그대로 가져왔습니다. 1학년 - 코딩 문법 이때 익숙해지지 못하면 2학년부터 계속 스노우볼 굴러가니 언어 공부 제대로 합시다. 학점 관리 적당히 3점대 중반이상 해두는게 좋아요. 2학년 - 학점 3점대 중반 이상 관리. 2학년 마친 후 겨울방학에 삼성 상시테스트 A형 취득. 3학년 - 학점관리. 이제 전체 학점 관리도 할 수 있으면 좋지만 그게 힘들고 이미 분야 정했으면 그쪽을 좀더 파고 나머지 학점은 비교적 덜해도 괜찮다고 봐요. 3학년 여름방학, 겨울방학 중 하나는 삼성 상시테스트 A+ 취득에 사용하고 나머지 하나는 인턴이나 프로젝트 경험에 사용. 이 과정으로 졸업하면 학점관리 3점대 중반 이상 되고 상시테스트 A+ 이상 취득에 프로젝트..
분류 전체보기
이 글은 학회 회원 랑이집사님의 허락을 받아 에브리타임 게시글을 그대로 가져왔습니다. 코딩테스트에서 나오는 비주류 유형이 몇가지 있는데, 그중 하나인 정수론에 대해 적어보려고 합니다. 코딩테스트에 자주 나오진 않지만, 보통 많이들 가고싶어하시는 상위티어 기업들에서는 나름 빈출이기도 하니 한번쯤 익혀두시면 좋을것 같습니다! 심지어 코딩테스트에 나오는 수준의 정수론은 대부분 쉬워요. 1. 유클리드 호제법 이건 제가 1학년 2학기 c언어 실습 빨리 끝내고 기다리고 있을 때 교수님께서 한번 코딩해보라고 알려주셔서 그 때 처음 알게된 개념이에요. 1학년도 할 수 있는 알고보면 간단한 내용이니 수식 많다고 포기하지 마시고 한번 읽어보세요! 내용은 간단합니다. a와 b의 최대공약수를 gcd(a, b)라고 표현할게요...
이 글은 학회 회원 랑이집사님의 허락을 받아 에브리타임 게시글을 그대로 가져왔습니다. 문제에 주어진 정보가 많을 경우 구현 시간을 많이 줄일 수 있는 방식이라 코딩테스트, 특히 삼성을 준비하신다면 꼭 알아야 할 방법이라고 생각해서 코딩테스트가 몇개라도 남아있을 때 얼른 올리려고 지금 적습니다. 우선 문제부터 보여드리겠습니다. http://boj.kr/2948 월, 일을 입력받아서 무슨 요일인지 출력하는 문제입니다. 월, 일 순서가 아닌 일, 월 순서로 입력받는다는 함정이 있어요. 이 문제의 해법은 간단한데, 1월 1일이 목요일이니 1월 8, 15, 22, 29일은 모두 목요일입니다. 마찬가지로 1월 2, 9, 16, 23, 30일은 모두 금요일입니다. 그럼 2월 1일은 무슨 요일일까요? 2월 1일은 1월..
이 글은 학회 회원 랑이집사님의 허락을 받아 에브리타임 게시글을 그대로 가져왔습니다. 프로그래밍 입문 수업때 질문을 받다보니 아래 두가지 질문만 들어오는걸 보고 이건 답을 알려줘도 실력 향상에 별 도움이 안되겠다 싶어서 글 남깁니다. 1. 답이 안나와요. 2. 답은 나오는데 만점이 안나와요. 1학년만 그런게 아니고 코딩테스트 준비하시는 취준생 분들 가르쳐 드릴때도 똑같았어요. 코딩을 해서 답이 안나오는 경우 아래 세가지는 먼저 생각해보고 정리해서 질문하는게 좋습니다. 1. 어떤 의도로 코드를 작성했는지.(이 부분까지 실행할 때 어떤 결과를 기대했는지) 2. 현재 어떤 결과가 나오는지. 3. 예상되는 원인이 무엇인지(디버깅에 어떤 노력을 했는지) 예를들어 http://boj.kr/1871 문제를 보겠습니다..
이 글은 학회 회원 랑이집사님의 허락을 받아 에브리타임 게시글을 그대로 가져왔습니다. 원래 아주 중요한 배열을 이용한 코딩 스킬을 올리려고 했는데, 내용이 너무 길어질것 같기도 하고 그 내용은 코드를 많이 보여드려야 하는데 에타에 적긴 쉽지 않을것 같아서 우선 미뤘습니다. 알아두면 코딩이 훨씬 간단해지니 다음에 방법을 찾아서 적어보도록 할게요! 코딩 테스트, 대회, 취미 등 알고리즘을 공부하는 이유는 여러가지가 있겠지만 처음 공부할 때 어떤 알고리즘부터 해야할지 막막하실거에요. 백트래킹, 동적계획법, DFS, BFS, 그리디 등 검색하면 여러 알고리즘이 나오지만 전 우선 처음 시작했으면 완전탐색부터 잡아야 한다고 생각합니다. 컴퓨터는 1초에 약 1억번의 연산을 합니다. 그리고 대부분의 문제는 시간제한이 ..
이 글은 학회 회원 랑이집사님의 허락을 받아 에브리타임 게시글을 그대로 가져왔습니다. 지난번 글을 생각보다 많은 분들이 봐주셔서 xor에 이어 and를 이용한 코딩 스킬을 올릴까 하다가 삼성 코테 볼때 조심할 것들이 더 도움될것 같아서 올립니다. 삼성 코딩테스트 유형(완전탐색, 시뮬레이션)에 대한 내용이 아니라 삼성 코테 환경이나 문제 특성에 대한 글입니다. 삼성 코딩테스트에서 많이들 하는 실수에 대한 내용을 써보려고 합니다. 우선 삼성 코딩테스트 유형을 모르시면 www.swexpertacademy.com의 제일 위의 "신입 SW 역량테스트란?" 들어가서 중간에 "모의검정 문제 예시 풀어보기" 들어가시면 예시 문제 볼 수 있으니 유형은 보고 읽으시는게 좋아요. 언어는 제가 쓰는 c++기준입니다! 1. 전..
이 글은 학회 회원 랑이집사님의 허락을 받아 에브리타임 게시글을 그대로 가져왔습니다. 알아두면 언젠간 쓸데가 있을지도 몰라요 우선 시작하기 전에 xor의 성질 하나만 보고 들어갈게요. 편의상 xor기호는 c언어에서 사용하는 ^ 기호를 사용할건데, 이 글에서 나오는 모든 ^는 제곱의 의미가 아니라 xor입니다! a ^ b ^ c = a ^ c ^ b xor연산은 순서를 바꿔도 같은 결과가 나옵니다. a ^ a = 0 자기자신과 xor연산을 하면 0이 됩니다. a ^ 0 = a 0과 xor하면 자기자신이 나옵니다. 세가지만 기억하시면 돼요 1. temp 없이 두 수 교환하기 보통 두 변수의 값을 교환하는건 아래처럼 사용하죠 temp = a a = b b = temp 하지만 xor의 성질을 이용하면 아래처럼 ..

문제 링크 : https://www.acmicpc.net/problem/4375 4375번: 1 문제 2와 5로 나누어 떨어지지 않는 정수 n(1 ≤ n ≤ 10000)가 주어졌을 때, 1로만 이루어진 n의 배수를 찾는 프로그램을 작성하시오. 입력 입력을 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스는 한 줄로 이루어져 있고, n이 주어진다. 출력 1로 이루어진 n의 배수 중 가장 작은 수의 자리수를 출력한다. 예제 입력 1 복사 3 7 9901 예제 출력 1 복사 3 6 12... www.acmicpc.net 문제 2와 5로 나누어 떨어지지 않는 정수 n(1 ≤ n ≤ 10000)가 주어졌을 때, 1로만 이루어진 n의 배수를 찾는 프로그램을 작성하시오. 입력 입력을 여러 개의 테스트 케이..

문제 링크 : https://www.acmicpc.net/problem/2504 2504번: 괄호의 값 4개의 기호 ‘(’, ‘)’, ‘[’, ‘]’를 이용해서 만들어지는 괄호열 중에서 올바른 괄호열이란 다음과 같이 정의된다. 한 쌍의 괄호로만 이루어진 ‘()’와 ‘[]’는 올바른 괄호열이다. 만일 X가 올바른 괄호열이면 ‘(X)’이나 ‘[X]’도 모두 올바른 괄호열이 된다. X와 Y 모두 올바른 괄호열이라면 이들을 결합한 XY도 올바른 괄호열이 된다. 예를 들어 ‘(()[[]])’나 ‘(())[][]’ 는 올바른 괄호열이지만 ‘([)]’ 나 ‘(()( www.acmicpc.net 문제 4개의 기호 ‘(’, ‘)’, ‘[’, ‘]’를 이용해서 만들어지는 괄호열 중에서 올바른 괄호열이란 다음과 같이 정의된..

www.acmicpc.net/problem/2477 2477번: 참외밭 첫 번째 줄에 1m^2의 넓이에 자라는 참외의 개수를 나타내는 양의 정수 K (1≤K≤20)가 주어진다. 참외밭을 나타내는 육각형의 임의의 한 꼭짓점에서 출발하여 반시계방향으로 둘레를 돌면서 지나� www.acmicpc.net 실버 5의 구현 문제여서 쉬울 것이라고 생각하고 접근했다가 엄청 애먹었다... 문제를 보면 다들 큰 사각형에서 작은 사각형 빼면 되겠다!라고 생각할 것이다. 근데 어떻게 작은 사각형을 구하지...? 이 고민만 30분 넘게 했다. 다양한 방법이 생각났지만 아무리 봐도 실버5에 쓸만한 구현들이 아니었다. 분명 더 쉬운 풀이법이 있을 것 같은데... 결국 내가 마지막으로 생각해 낸 방법은 4가지 도형으로 나누어서 각..
1. LCS 알고리즘이란? LCS(Longest Common Subsequence) 알고리즘은 단어 그대로 해석하자면 가장 긴 공통 부분 문자열이다. 부분 문자열(Subsequence)이란 어떤 단어에서 연속되지 않는 부분 문자열을 뜻하는데 연속된 부분 문자열을 나타내는 부분 문자열(Substring) 도 있다. (따라서 string 헤더파일의 substr()은 substring을 의미한다) 두 부분 문자열의 차이는 예를 들자면 pringles sangeles 이렇게 두 문자열이 있을 때 가장 긴 Subsequence는 pringles sangeles "ngles" 가 되고 가장 긴 Substring은 pringles sangeles "les" 가 된다. 위에서 알 수 있듯 가장 긴 Substring은 ..

* 이 글은 "알고리즘 문제 해결 전략(종만북)" 中 20장 문자열에 나온 내용을 바탕으로 작성하였습니다. 개요 '문자열'은 간단한 문제여도 쉽지 않은 문제들이 많다. C++의 STL을 사용하며 많은 부분에서 편리함이 생겼지만, 그럼에도 문자열 문제들은 많은 시간이 소요된다. 하지만 문자열 문제는 카카오 코딩테스트 문제 유형에도 자주 나오며 그 외 많은 문제에서 찾아볼 수 있다. 항상 나를 괴롭혀 왔던 '문자열'에 대해 자세히 공부해 보고자 한다. 1. 문자열 검색 문자열을 검색하는 알고리즘에 대해 공부해보자 주어진 긴 '짚더미(Haystack)' 문자열 H가 '바늘(Needle)' 문자열 N을 부분 문자열로 포함하는지를 확인하고, 포함한다면 N과 일치하는 부분 문자열의 시작 위치를 찾는 문제를 문자열 ..