지난해 sdc2024를 본 경험과 인상깊었던 점,내가 평소에 생각하는 협업, 및 플젝 과정 중 고민했던 부분들을 자소서에 녹여냈었다.인턴 서류 합격을 해서 sw역량테스트 준비과정기를 적어보려한다.sw역량테스트바로 인터넷을 찾아봤다.준비 방향성은 어렵지 않게 찾을 수 있었다. https://company-n-job.tistory.com/44 [삼성전자] 1. 코딩테스트 후기 및 꿀팁 feat."삼성전자 인재개발원 환경"우선 나는 삼성전자 DX (삼성리서치)에 지원하여, 오늘 용인에 있는 인재개발원에서 오전에 코딩시험을 보고 왔다. ps. 나는 2문제 중에 주로 1번이라고 표현하는 구현(시뮬레이션) 문제에 올인하company-n-job.tistory.com위 방향성을 토대로 풀어야할 문제들을 정리했다. 대체..
일반적인 이분탐색은 비내림차순, 비오름차순 으로 정렬된 상태가 아니고,아래와 같이 공통된 값 없이 하나씩만 존재하는 경우이다. 이분탐색에 필요한 left, right값을 아래와 같이 정의하고,left = -1 (배열을 벗어난 가장 왼쪽에 가까운 값)과right = n (배열을 벗어난 가장 오른쪽에 가까운 값) while문은 left +1 = right 가 되는 시점에 멈추게 되고, left는 항상 target보다 작은 값 중 최대 값을 가리킴right는 항상 target 이상인 값 중 최소 값을 가리킴이므로, 최종적인 right값을 반환한다. int left = -1;int right = n;binarysearch(left, right);public static int binarysearch(int ..
유니온 파인드유니온 파인드에 대해 간단히 설명하면, Union: 서로 다른 두 개의 집합을 하나의 집합으로 병합하는 연산을 말한다. 이 자료구조에서는 상호 배타적 집합만을 다루므로 Union 연산은 합집한 연산과 같다.Find: 하나읜 원소가 어떤 집합에 속해있는지를 판단한다. [백준 1717 문제] 일반적인 union, find 알고리즘은 아래와 같다.int find(int num){ if (parent[num] == num) return num; return find(parent[num]); //재귀 형태로 구현 } void union(int num1, int num2){ num1 = find(num1);//가장 부모 num2 = find(num2);//가장 부모 ..
🗒️ 문제 : 백준 1300 k번째 수📎 분류 : binary search2차원 배열의 값들은 i * j이다.1차원 배열의 값은 2차원 배열을 오름차순으로 정렬한 것이다.2차원 배열과 1차원 배열의 인덱스는 1부터 시작한다.2차원 배열을 만들게 되면 N의 크기가 커서 시간초과 발생접근 방식3x3 2차원 배열의 경우{{1,2,3},{2,4,6},{3,6,9}}B[6] 은 얼마일까? B[] = {1,2,2,3,3,4,6,6,9} 이므로, 4 이다.이는 2차원 배열을 1차원 배열로 늘여뜨려놓은 걸 수도 있지만,1단 2단 3단1 2 32 4 63 6 9각 단에서 4보다 작은 수의 개수를 다 더한 값과 같다.단이 i부터 n까지면,min ( 4/1 , 3 ) + 4/ 2 +..
🗒️ 문제 : 백준 2343 블루레이 만들기📎 분류 : binary search예시)강의는 총 9개이고, 블루레이는 총 3개 가지고 있다.1번 블루레이에 1, 2, 3, 4, 5, 2번 블루레이에 6, 7, 3번 블루레이에 8, 9 를 넣으면 각 블루레이의 크기는 15, 13, 17이 된다. 블루레이의 크기는 모두 같아야 하기 때문에, 블루레이의 크기는 17이 된다. 17보다 더 작은 크기를 가지는 블루레이를 만들 수 없다.접근방식이 문제는 블루레이 하나의 최대 크기를 이진 탐색으로 찾는 문제이다.low = 강의 중 가장 긴 강의 시간 (블루레이 최소 크기)high = 모든 강의 시간을 합한 값 (블루레이 최대 크기)이진 탐색을 통해, **블루레이 하나당 최대 크기(mid)**를 정하고, 그 크기(m..
🗒️ 문제 : 백준 1167 트리의 지름📎 분류 : Tree, Dfs 트리(tree)는 사이클이 없는 무방향 그래프이다. 트리에서 어떤 두 노드를 선택해도 둘 사이에 경로가 항상 하나만 존재한다. 트리에서 어떤 두 노드를 선택해서 양쪽으로 꽉 당길때 가장 길게 늘어나는 경우, 트리의 모든 노드들은 이 두 노드를 지름의 끝 점으로 하는 원 안에 들어가게 된다.트리의 지름이란, 트리 상에서 가장 먼 거리를 가지는 두 정점 사이의 경로이다. 트리의 지름은 다음과 같은 순서로 구할 수 있는데,dfs를 통해 임의의 정점(x)로부터 가장 먼 정점(y)를 구한다.dfs를 통해 구해진 (y)정점으로부터 가장 먼 정점(z)를 구한다.(y)정점과 (z)정점을 잇는 경로가 트리의 지름이 된다.증명dfs를 2번만 진행하면..