| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | ||||
| 4 | 5 | 6 | 7 | 8 | 9 | 10 |
| 11 | 12 | 13 | 14 | 15 | 16 | 17 |
| 18 | 19 | 20 | 21 | 22 | 23 | 24 |
| 25 | 26 | 27 | 28 | 29 | 30 | 31 |
- CKLU
- Android
- 재귀함수
- dfs
- 현대오토에버 코딩테스트
- 프로그래머스
- 안드로이드
- dp
- 데이터베이스
- 백준
- backjoon
- 익명객체
- 삼성SW테스트
- 금융IT
- 익명클래스
- 모바일
- 조합
- 알고리즘
- 백준 알고리즘
- 자바
- 언더라이터
- 너비탐색
- 다이나믹 프로그래밍
- 멀티스레드
- 네트워크
- 삼성sw문제
- Java
- 개발
- IT
- BFS
- Today
- Total
목록Algorithm/Algorithm (8)
Limky 삽질블로그
안녕하세요. Limky 입니다. 현대그룹 IT를 담당하는 회사인 현대오토에버가 이번 2020년 상반기 부터 IT관련 직군 코딩테스트를 도입하면서 코딩에 대한 중요성이 대두되고 있습니다. 물론 현대오토에버 뿐만 아니라, SK하이닉스, LINE, 카카오 등 다른 타 IT전문 기업에서도 코딩테스트를 시행하면서 신입사원 채용을 합니다. 이번 2020년 상반기에 진행했던 현대오토에버 문제들 난이도는 SK하이닉스 2019년 상반기 보단 조금은 쉬웠습니다. 또 몇가지 주목할 점은 두 시험 모두 경우의 수, 시뮬레이션, 탐색 같은 유형의 문제는 필수적으로 출제되는 것으로 보입니다. 삼성SW테스트와 흡사하죠.. 하지만 제가 봤을땐 난이도는...삼성SW, LINE, 카카오 보단 쉽습니다. 주어진 문제 수에 과반수 이상을 ..
삼성 SW 모의 테스트 #2105 - [모의 SW 역량 테스트] 디저트 카페 https://www.swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV5VwAr6APYDFAWu 사용한 개념 1. BFS탐색 2. 시뮬레이션 이 문제에서 BFS탐색을 하는데 있어 이전 탐색 방향에 따라, 현재 탐색 방향을 지정해주는 것이 포인트입니다. 즉, 문제에서 주어진 4가지 대각선 방향에 있어 이전 방향이 ↘ 방향이면, 현재 탐색할 방향은 ↙ OR ↘ 입니다. 이런식으로 각각의 이전 방향에 대한 현재 탐색 방향을 지정해줘서 사각형을 그릴 수 있도록 만들어 줍니다. 아래는 전체소스 입니다. package SWE; import java.io.Buff..
java로 순열, 중복순열, 조합, 중복조합 구하기 기본 베이스는 LinkedList 로 구현하도록 했습니다. 더 자세한 설명을 원하실 경우 아래링크를 참고하세요~ 2019/03/23 - [프로그래밍/Java] - [JAVA] 조합,중복조합,순열,중복순열 소스 아래는 전체 소스입니다. package CASEOFNUMBER; import java.util.LinkedList; import java.util.Scanner; public class CaseOfNumber2 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int r = sc.nextInt(); int arr[] ..
스택 2개로 큐 구현하기 이번시간에는 스택2개로 하나의 큐를 구현하는 방법을 알아보겠습니다. 생각보다 쉽습니다. 예를 들어, 1 2 3 4 를 큐에 넣으면 순서대로 1 2 3 4 가 나오겠죠? 이를 선입선출이라고 합니다. 하지만 스택은 1 2 3 4 를 넣고 뽑으면, 4 3 2 1 이 나옵니다. 스택은 큐와 다르게 선입후출입니다. 하지만!! 스택을 2개를 잘 이용하면 선입후출을 이용해, 마치 선입선출처럼 동작하게끔 할 수 있습니다. 아래 그림을 통해 이해해봅시다. 이해되시나요??? 여기서 중요한건... 2번째 스택에 아무것도 없는 상태에서 pop을 수행하려고 할 때 첫번째 스택에 쌓여있는 값들을 전부 2번째 스택으로 이관시키는 것이 포인트입니다! 무조건 첫번째 스택에 쌓인 값을 두번째 스택에 옮기는 것이..
삼성 SW 모의 테스트 #1953 - 탈주범 검거 https://www.swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV5PpLlKAQ4DFAUq 사용한 개념 1. BFS탐색2. 시뮬레이션 이 문제에서 2가지 포인트만 알면 됩니다..1. 각 파이프마다 이동할 수 있는 방향이 정해져 있다는 것2. 정해진 방향으로 넘어가더라도 넘어간 파이프의 모양이 연결되어 있지 않다면 실제로 넘어갈 수 없다. 이 2가지를 조건을 걸어서 필터를 해줘야합니다.. 아래는 전체소스 입니다. package SWE; import java.awt.Point; import java.io.BufferedReader; import java.io.IOExcepti..
안녕하세요. Limky 입니다. 이번시간에는 경우의 수 중에 순열에 대해서 알아보겠습니다. 헌데, 순열은 순열이지 왜 중복순열이라고 했을까요?? 당연 중복순열과 중복되지 않는 순열은 조금 다릅니다. 자기자신을 포함하냐 안하냐에 따라 순열과 중복순열로 구분합니다! 예제를 들어 설명해보겠습니다. 여기 구슬 3개가 있습니다. 1, 2, 3 중복이 없는 순열은 자기자신을 제외하고 모든 경우의 수를 생각하는 것입니다. 3개의 구슬중에 2개를 뽑는 경우의 수는 아래와 같습니다. 1, 2 1, 3 2, 1 2, 3 3, 1 3, 2 입니다. 총 3 X 2 = 6가지 이지요? 하지만!! 중복순열은 다릅니다. 자기자신을 포함하죠.... 똑같이 구슬 3개가 있습니다. 1, 2, 3 중복을 허용해서 뽑으면 아래와 같습니다...
다익스트라 최단거리 알고리즘(Dijkstra) 다익스트라 알고리즘은 워낙 유명하죠 ㅎㅎ 다익스트라 알고리즘은 그래프에 있어서 탐색 시작 노드에서 탐색할 노드까지의 최단거리를 구하는 알고리즘입니다. 다익스트라 알고리즘은 실생활에서도 많이 쓰입니다. 지하철 최단거리 노선을 알려준다거나, 네비게이션 최단 경로를 알려주는 등 굉장히 활용도가 높은 알고리즘 입니다. 일단 노드간 가중치가 있어 최단거리를 구할 수 있습니다. 연결되 노드간 가중치의 합이 최단거리라고 할 수 있기 때문이죠. 아래 전체소스에 주석으로 상세히 적어놓았으나, 몇가지 포인트는 알고있어야 합니다. 원리는 다음과 같습니다. 경로를 통해 지나온 노드간 가중치들의 합이 가장 작은 값을 계속 갱신하며, 최단거리 가중치 합을 구하는 것입니다. 예를 들어..
JAVA로 중복이 없고, 순서도 없는 조합(Combination) 구하기! 이번 시간은 JAVA로 중복이 없는 조합을 구하는 방법에 대해 알아보겠습니다. 우선 1,2,3 구슬이 있습니다. 3개중에 2개를 뽑는다고 했을때, 모든 경우의 수는 다음과 같습니다. 1,2 1,3 2,1 2,3 3,1 3,2 총 6가지 입니다. 팩토리얼 개념으로 접근하면 3*2 = 6 가지임을 알 수 있습니다. 이제 여기서 중복을 제거한 경우의 수만 따진다면, 1,2 1,3 2,3 총 3가지 입니다. 이를 조합이라고 합니다. 수학적인 기호로 나타내면! nCr 입니다. 즉, 중복이 없고, 순서도 없는 경우의 수(조합)입니다. n은 총 갯수, r 은 뽑아야 할 갯수 입니다. 저는 배열과 재귀함수를 통해 nCr에 대해서 구해보겠습니다...