분류 전체보기
-
기둥과 보 설치알고리즘 2021. 1. 18. 20:49
문제 설명 빙하가 깨지면서 스노우타운에 떠내려 온 죠르디는 인생 2막을 위해 주택 건축사업에 뛰어들기로 결심하였습니다. 죠르디는 기둥과 보를 이용하여 벽면 구조물을 자동으로 세우는 로봇을 개발할 계획인데, 그에 앞서 로봇의 동작을 시뮬레이션 할 수 있는 프로그램을 만들고 있습니다. 프로그램은 2차원 가상 벽면에 기둥과 보를 이용한 구조물을 설치할 수 있는데, 기둥과 보는 길이가 1인 선분으로 표현되며 다음과 같은 규칙을 가지고 있습니다. 기둥은 바닥 위에 있거나 보의 한쪽 끝 부분 위에 있거나, 또는 다른 기둥 위에 있어야 합니다. 보는 한쪽 끝 부분이 기둥 위에 있거나, 또는 양쪽 끝 부분이 다른 보와 동시에 연결되어 있어야 합니다. 단, 바닥은 벽면의 맨 아래 지면을 말합니다. 2차원 벽면은 n x ..
-
뱀 [삼성전자 sw 역량테스트]알고리즘 2021. 1. 17. 04:52
뱀 문제 : 'Dummy' 라는 도스게임이 있다. 이 게임에는 뱀이 나와서 기어다니는데, 사과를 먹으면 뱀 길이가 늘어난다. 뱀이 이리저리 기어다니다가 벽 또는 자기자신의 몸과 부딪히면 게임이 끝난다. 게임은 NxN 정사각 보드위에서 진행되고, 몇몇 칸에는 사과가 놓여져 있다. 보드의 상하좌우 끝에 벽이 있다. 게임이 시작할때 뱀은 맨위 맨좌측에 위치하고 뱀의 길이는 1 이다. 뱀은 처음에 오른쪽을 향한다. 뱀은 매 초마다 이동을 하는데 다음과 같은 규칙을 따른다. 먼저 뱀은 몸길이를 늘려 머리를 다음칸에 위치시킨다. 만약 이동한 칸에 사과가 있다면, 그 칸에 있던 사과가 없어지고 꼬리는 움직이지 않는다. 만약 이동한 칸에 사과가 없다면, 몸길이를 줄여서 꼬리가 위치한 칸을 비워준다. 즉, 몸길이는 변하..
-
동기 vs 비동기CS 전공 지식 2021. 1. 11. 19:29
동기식 (Synchronous) - 동기식은 동시에 일어나는 뜻이다. 요청과 그 결과가 동시에 일어난다는 말! -> 요청한 결과가 한 자리에서 동시에 일어남 -> A노드와 B노드 사이의 트랜잭션을 동시에 맞추겠다는 말임 장점 : 설계가 간단하고 직관적 단점 : 결과를 볼 때까지 아무것도 못하고 대기해야함 비동기식(Asynchronous) - 비동기식은 동시에 일어나지 않는다는 뜻이다. 요청과 결과가 동시에 일어나지 않는다는 말! -> 요청한 그 곳에서 결과가 나타나지 않음 -> 노드 사이의 작업 처리 단위를 동시에 하지 않아도 된다. 장점 : 결과가 주어지는데 시간이 걸리더라도 그 시간 동안 다른 작업이 가능해 자원의 효율적인 사용이 가능 단점 : 설계가 동기보다 복잡함 pro-self-studier.t..
-
무지의 먹방 라이브 (카카오 기출)알고리즘 2021. 1. 10. 03:26
문제 : 회전판에 먹어야 할 N개의 음식이 있다. 각 음식에는 1부터 N까지 번호가 붙어있다. 각 음식을 섭취하는데 일정시간이 소요된다. 1. 1번음식부터 먹기 시작하며 회전판은 번호가 증가하는 순서대로 음식을 앞으로 가져다 놓는다. 2. 마지막 번호의 음식을 먹은 후 회전판에 의해 다시 1번 음식이 앞으로 온다. 3. 음식 1개를 1초동안 섭취한 후에 남은 음식은 그대로 두고 다음 음식을 섭취한다. 다음 음식이란 아직 남은 음식 중 다음으로 섭취해야할 가장 가까운 번호의 음식을 말한다. 4. 회전판이 다음 음식을 앞으로 가져오는데 걸리는 시간은 없다고 가정한다. 무지가 먹방을 시작한지 k초 후에 장애로 방송이 잠시 중단되었다. 몇번 음식부터 섭취해야하는지 알고자한다. 음식을 모두 먹는데 필요한 시간이 ..
-
클래스의 상속 사용 판단 기준CS 전공 지식 2021. 1. 3. 22:25
상속 장점 : 중복되는 코드를 제거할 수 있다. 상속 단점 : 상속의 깊이가 깊어지면 유지 보수가 어려워질 수 있다. 1. Single Resposibility ( 단일 책임 ) 너무 여러개의 책임을 한 클래스가 가지면 안된다. 1개의 클래스가 1개의 일만 하도록 하기 위해 상속을 사용한다. 이떄 1개의 클래스는 단일 책임을 갖게 된다. 2. Type Safety ( 타입이 분명해야 할 때 ) 예를 들어 운동선수들 중에 축구, 야구, 농구, 등 여러가지가 있는데 이중 한가지 종목의 운동선수를 뽑고 싶을 때 상속을 사용한다. 3. Shared Base Classes ( 다자녀가 있다! ) 기본동작이 다양하게 구현되어야 하는 경우 예를 들어 학습이라는 기본동작이 있는데 대학교 학과에 따라서 학습의 구현이 다..
-
< 정렬 >알고리즘/개념 2020. 12. 7. 16:02
정렬 알고리즘 평균 시간 복잡도 공간 복잡도 특징 선택 정렬 O(N^2) O(N) 아이디어가 매우 간단함. 삽입 정렬 O(N^2) O(N) 데이터가 거의 정렬되어 있을때 가장 빠름. 퀵 정렬 O(NlogN) O(N) 대부분의 경우에 가장 적합하며 충분히 빠름. 계수 정렬 O(N + K) (K는 데이터 중에서 가장 큰 양수) O(N + K) (K는 데이터 중에서 가장 큰 양수) 데이터의 크기가 한정되어 있는 경우에만 사용이 가능하지만 매우 빠르게 동작함. 정렬 알고리즘 핵심 아이디어 선택 정렬 가장 작은 데이터를 '선택'해서 정렬되지 않은 데이터 중에서 가장 앞쪽에 있는 데이터와 위치를 바꾸는 방법임. 삽입 정렬 데이터를 앞에서부터 하나씩 확인하며 데이터를 적절한 위치에 '삽입'하는 방법임. 퀵 정렬 기준..
-
< 코딩테스트 개요 >알고리즘 2020. 12. 3. 00:03
# 팀노트 준비 (30P) # 코드업 사이트의 [문제] - [문제집]에서 [기초 100제] 풀기 (대부분 구현 문제로 구성) # 코드업에서 200문제 풀고 백준으로 넘어가는 것을 추천한다고 한다. # 책을 읽으며 백준 온라인 저지(solved.ac)에서 유형별 알고리즘을 찾아 풀어볼 것을 권장한다. # 이 책으로 공부한 후에 백준 온라인 저지의 sw 역량테스트 문제를 푸는 것을 추천한다고 한다. # 카카오에 지원하거나 카카오의 문제 스타일을 확인하고 싶다면 프로그래머스의 문제를 반드시 풀라고 한다. # sw역량테스트 A형을 응시해보는 것을 추천한다고 한다. (DFS/BFS를 활용해야하는 탐색과 시뮬레이션 문제 유형을 자주 출제한다고 한다. ) # PyPy는 때때로 C언어보다 빠르게 동작한다고 한다. ( ..
-
그룹 함수 (ROLLUP , CUBE , GROUPING SETS)알고리즘 2020. 11. 26. 20:17
1. ROLLUP A컬럼의 서로 다른 원소의 개수가 M개이고 B컬럼의 서로 다른 원소의 개수가 N개라고 가정하자 SELECT A , B , SUM(C) FROM 테이블_ABC GROUP BY ROLLUP( A , B ) A(1)와 B(1)에 관한 C의 합이 나오고 A(1)와 B(2)에 관한 C의 합이 나오고 ... A(1)와 B(N)에 관한 C의 합이 나오고 해당 A(1) 전체에 관한 C의 합이 나오고 A(2)와 B(1)에 관한 C의 합이 나오고 A(2)와 B(2)에 관한 C의 합이 나오고 ... A(2)와 B(N)에 관한 C의 합이 나오고 해당 A(2) 전체에 관한 C의 합이 나오고 A(M)와 B(1)에 관한 C의 합이 나오고 A(M)와 B(2)에 관한 C의 합이 나오고 ... A(M)와 B(N)에 관..