본문 바로가기
728x90
반응형

전체 글416

[21년 상반기] 라인 플러스 공채 코딩 테스트 후기 안녕하세요. J4J입니다. 이직을 위해 이번에 라인 플러스 신입 공채에 지원을 하게 되었습니다. 신입 공채에서는 보통 프론트/백엔드를 나누지 않는데 라인에서는 구분이 되어있었고 저는 프론트 개발자로 지원을 했습니다. 서류 제출 기한은 21.03.02(화) ~ 21.03.15(월)이었습니다. 서류 상의 지문들은 작성하기 어렵다라고 생각되는 것이 없었기 때문에 무난하게 작성했고 이후 코딩 테스트 대상자가 되었다는 메일은 03.18(목)에 전달받았습니다. 이전에 제가 알기로는 라인의 코딩테스트 시험은 총 6문제에 3시간이라는 시간을 주는 것으로 알고 있었습니다. 하지만 이번에는 제가 알던것과 달리 2시간 동안 진행하는 일반 코딩 테스트(13:00 ~ 15:00)와 이후에 또 2시간 동안 진행하는 단계별 코딩 .. 2021. 5. 14.
[Git] Conflict 해결하는 방법 안녕하세요. J4J입니다. 이번 포스팅은 Conflict 해결하는 방법에 대해 적어보는 시간을 가져보려고 합니다. Conflict 발생 이유 conflict는 주로 서로 다른 브랜치에서 동일 파일의 동일 위치에 있는 코드를 수정한 뒤 변경된 소스코드를 합치는 과정에서 발생됩니다. 예를 들어 master브랜치를 카피하여 A, B라는 브랜치를 생성을 했다고 가정해보겠습니다. 그리고 기존에 master브랜치에 C라는 파일이 있었고 C라는 파일에는 hello master라는 텍스트가 있었다고 하면 A, B 브랜치에도 동일하게 C라는 파일이 있고 hello master라는 텍스트가 작성되어 있을 겁니다. 이 상황에서 A브랜치에서는 C파일의 텍스트를 hello A라고 수정하여 master브랜치에 merge되면 ma.. 2021. 5. 8.
[Git] Repository 삭제 방법 안녕하세요. J4J입니다. 이번 포스팅은 Repository 삭제 방법에 대해 적어보는 시간을 가져보려고 합니다. Repository 삭제 방법 [ 1. 삭제할 Repository ] [ 2. 상단의 Settings → 좌측 탭의 Options 클릭 ] [ 3. 스크롤을 최하단으로 내려서 Danger Zone의 Delete this repository 클릭 ] [ 4. 문구 입력 후 버튼 클릭 ] 위에 문구를 타이핑으로 직접 치셔야 합니다. 신기하게도 복사+붙여 넣기를 할 경우 버튼이 활성화되지가 않습니다. 버튼을 클릭하게 되면 해당 Repository가 삭제되어 더 이상 확인할 수 없게 됩니다. 이상으로 Repository 삭제 방법에 대해 간단하게 알아보는 시간이었습니다. 읽어주셔서 감사합니다. 2021. 5. 5.
[Git] Default 브랜치 변경 방법 안녕하세요. J4J입니다. 이번 포스팅은 Default 브랜치 변경 방법에 대해 적어보는 시간을 가져보려고 합니다. Default 브랜치 변경 방법 [ 1. 변경할 Repository default 브랜치 확인 ] [ 2. 상단의 Settings → 좌측 탭의 Branches 클릭 ] 해당 메뉴에 접속하면 Default branch가 현재 master로 되어 있는 것을 확인할 수 있습니다. [ 3. 우측의 화살표 양방향 클릭 ] [ 4. 변경할 브랜치 선택 ] [ 5. Update 버튼 클릭 ] Update를 누르면 다음과 같은 알림 창이 하나 나오는데 그냥 버튼 클릭해주시면 됩니다. [ 6. default 브랜치 변경 확인 ] 상단의 Code버튼을 누르면 다시 메인 페이지로 돌아가지는데 따로 만지지 않.. 2021. 5. 5.
[Git] 브랜치 생성하는 방법 안녕하세요. J4J입니다. 이번 포스팅은 브랜치 생성하는 방법에 대해 적어보는 시간을 가져보려고 합니다. 브랜치 생성 방법 [ 1. git bash를 이용하여 생성하고자 하는 폴더로 이동 ] [ 2. 현재 브랜치 확인 ] [ 3. 브랜치 생성 (git branch) ] 명령어로 git branch만 사용할 경우 현재 존재하는 브랜치만 확인하고 git branch {브랜치 이름}으로 명령어를 사용할 경우 브랜치 이름에 해당하는 브랜치를 생성해줍니다. 위에는 develop라는 브랜치 이름을 생성하고 존재하는 브랜치를 확인하면 생성된 브랜치가 리스트에 보이게 됩니다. [ 4. 브랜치 변경 (git checkout) ] git checkout {브랜치 이름} 명령어를 사용할 경우 브랜치 이름에 해당하는 브랜치로.. 2021. 5. 2.
[Git] 원격 저장소 연결하여 저장소 파일 다운로드하는 방법 안녕하세요. J4J입니다. 이번 포스팅은 원격 저장소 연결하여 저장소 파일 다운로드하는 방법에 대해 적어보는 시간을 가져보려고 합니다. 이전 포스팅에서 다음과 같은 파일들을 원격 저장소에 올려놨었습니다. git bash를 이용하여 위의 저장소 파일들을 로컬과 연결하며 다운로드하는 2가지 방법에 대해 적어보도록 하겠습니다. 방법 1: git clone 첫 번째 방법은 git clone 명령어를 이용하는 것입니다. clone을 하게 될 경우 정말 간편하게 위의 파일들을 로컬 파일로 가져오며 또한 바로 저장소와 로컬 폴더가 연결되어 있는 환경이 구성됩니다. git clone을 사용하는 방법은 다음과 같습니다. [ 1. 연결할 폴더로 이동 ] [ 2. 웹에서 원격 저장소 URL 복사 ] [ 2-1. github.. 2021. 5. 1.
[Git] 원격 저장소 연결하여 로컬 파일 업로드하는 방법 안녕하세요. J4J입니다. 이번 포스팅은 원격 저장소 연결하여 로컬 파일 업로드하는 방법에 대해 적어보는 시간을 가져보려고 합니다. 원격 저장소 생성 우선 연결을 하기 위해서는 당연히 연결 대상인 원격 저장소가 필요합니다. 오픈소스로 되어있어 자유롭게 사용할 수 있는 github에 로그인하여 원격 저장소를 먼저 생성해보겠습니다. [ 1. 깃허브 사이트인 https://github.com/login에 접속하여 로그인 ] [ 2. 우측 상단에서 Your repositories 접속 ] [ 3. New 버튼 클릭 ] [ 4. 저장소 이름 입력 후 저장소 생성 ] [ 5. 생성 후 초기 화면 ] 저장소를 새로 생성하게 되면 위와 같이 github에서도 로컬과 연결하는 방법에 대해 간단하게 표현되어 있습니다. 하.. 2021. 4. 30.
[Git] Git 용어 및 명령어 정리 안녕하세요. J4J입니다. 이번 포스팅은 Git 용어 및 명령어를 정리해보는 시간을 가져보려고 합니다. 처리 과정 Git은 기본적으로 위의 사진과 같은 구조로 되어 있습니다. 4개의 주요 공간들이 존재하고 해당 공간들로 소스코드들을 전달하는 명령어들이 존재합니다. 각각 어떤 공간이고 어떤 역할들을 하는지에 대해 알아보도록 하겠습니다. 용어 Working Directory: 개발자의 현재 시점으로 소스코드를 수정하며 개발하는 공간을 의미 Staging Area: Working Directory에서 작업한 파일을 Local Repository에 전달하기 위해 파일들을 분류하는 공간 Local Repository: 로컬 저장소이며 작업한 파일들을 저장해두는 내부 저장소 (.git 폴더) Remote Repos.. 2021. 4. 28.
[Git] Git이란 무엇인가? 안녕하세요. J4J입니다. 이번 포스팅은 Git이란 무엇인가에 대해 적어보는 시간을 가져보려고 합니다. Git이란? Git은 형상 관리 도구, 버전 관리 시스템 등으로 불리는 것으로 프로젝트에 사용되는 소스코드들을 효과적으로 관리할 수 있도록 도와주는 무료 오픈소스입니다. 소스코드를 관리할수 있도록 도와주는 것들은 Git뿐만 아니라 SVN, CVS 등 다양한 것들이 존재하는데 그중 Git이 가장 최근에 등장하기도 했으며 또한 가장 각광받고 있는 것 중 하나입니다. 그렇기 때문에 Git을 사용하지 않는 곳에서는 형상 관리 도구를 Git으로 전환하려는 움직임이 많이 보이고 있고 개인적으론 대다수의 회사들은 Git을 현재 사용하고 있을 거라고 생각합니다. 사용 이유 Git을 왜 사용할까요? 간단하게 말씀드리면.. 2021. 4. 27.
[21년 상반기] 네이버 파이낸셜 경력 1일 이상 공채 코딩테스트 후기 안녕하세요. J4J입니다. 이번에 네이버 파이낸셜에서 특이하게 경력 1일 이상의 개발자를 채용하는 공고가 나왔습니다. 해당 공고의 목적은 중고 신입들이 눈치 보지 않고 회사에 지원할 수 있게 하기 위한 것이라고 알고 있는데... 뭐 어쨌든 최근 들어 이직을 생각해보고 있었기에 눈길이 갔고 프론트 개발자로 지원을 해봤습니다. 우선 지원 자격은 이름에 걸맞게 경력이 하나도 없는 신입은 지원할 수 없고 경력이 1일이상 부터 3년 이하인 사람만 지원할 수 있었습니다. 서류 제출 기한은 21.02.10(수) ~ 21.02.21(일)이었습니다. 서류를 작성해야겠다는 생각만 하고 까먹고 있다가 마지막날인 일요일에 작성을 했었는데 그 날 불행하게도 장염에 걸려서 엄청 고생하며 적었던 기억이 납니다. 서류를 제출하고 코.. 2021. 4. 26.
[Programmers] 여행경로 문제 깊이/너비 우선 탐색(DFS/BFS) > 여행경로 코딩테스트 연습 - 여행경로 [["ICN", "SFO"], ["ICN", "ATL"], ["SFO", "ATL"], ["ATL", "ICN"], ["ATL","SFO"]] ["ICN", "ATL", "ICN", "SFO", "ATL", "SFO"] programmers.co.kr 아이디어 이번 문제의 아이디어는 DFS입니다. 기본적인 DFS문제라고 생각돼서 DFS이다! 말고는 추가적인 견해는 필요 없을 것으로 보입니다. 재귀 함수를 이용하여 최대 깊이까지 탐색한 후 가능한 경로가 여러 개일 경우는 알파벳 순서가 앞인 경로에 대해서만 결과로 보여주면 쉽게 풀 수 있을 것으로 보입니다. 구현 코드 (JavaScript) const res = []; co.. 2021. 4. 24.
[Programmers] 징검다리 건너기 문제 2019 카카오 개발자 겨울 인턴십 > 징검다리 건너기 코딩테스트 연습 - 징검다리 건너기 [2, 4, 5, 3, 2, 1, 4, 2, 5, 1] 3 3 programmers.co.kr 아이디어 이번 문제는 우선순위 큐와 일반 큐의 조합으로 풀어봤습니다. 제가 문제를 읽고 생각한 풀이 방법은 "디딤돌을 k개만큼 순서대로 묶었을 때 묶어진 디딤돌들에서 나오는 최댓값들 중 최솟값을 구하기"였습니다. 왜냐하면 k개 만큼 인접한 디딤돌들은 서로 커버가 가능하기 때문입니다. 그렇기 때문에 인접한 디딤돌들을 k개만큼 묶으면 묶인 디딤돌들은 내부에 존재하는 디딤돌의 최댓값만큼 버틸 수 있고 결국에는 묶인 디딤돌들의 최댓값 중 최솟값을 구하면 최대 건널 수 있는 카카오 친구들의 숫자를 구할 수 있게 됩니다. 1번.. 2021. 4. 23.
[Programmers] 불량 사용자 문제 2019 카카오 개발자 겨울 인턴십 > 불량 사용자 코딩테스트 연습 - 불량 사용자 개발팀 내에서 이벤트 개발을 담당하고 있는 "무지"는 최근 진행된 카카오이모티콘 이벤트에 비정상적인 방법으로 당첨을 시도한 응모자들을 발견하였습니다. 이런 응모자들을 따로 모아 불량 programmers.co.kr 아이디어 이번 문제의 아이디어는 순열과 조합입니다. 제가 생각해낸 방법은 다음과 같습니다. 1. user_id에서 banned_id의 길이 만큼에 해당하는 원소를 뽑아내는 조합 구하기 2. 만들어진 조합을 가지고 순열 구하기 3. 만들어진 순열을 가지고 제재 아이디가 될 수 있는지를 확인 4. 만약 제재 아이디가 되었다는 것을 확인하면 순열 구하기 중단 5. 모든 조합의 경우에 대해 2~4를 반복 기본적인.. 2021. 4. 22.
[Programmers] 경주로 건설 문제 2020 카카오 인턴십 > 경주로 건설 코딩테스트 연습 - 경주로 건설 [[0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0],[0,0,0,0,0,1,0,0],[0,0,0,0,1,0,0,0],[0,0,0,1,0,0,0,1],[0,0,1,0,0,0,1,0],[0,1,0,0,0,1,0,0],[1,0,0,0,0,0,0,0]] 3800 [[0,0,1,0],[0,0,0,0],[0,1,0,1],[1,0,0,0]] 2100 [[0,0,0,0,0,0],[0,1,1,1,1,0],[0,0,1,0,0,0],[1,0,0,1,0,1],[ programmers.co.kr 아이디어 이번 문제의 아이디어는 BFS입니다. DFS로 시도하려고 하시는 분들도 있을 것 같아 보이는데 개인적인 견해로는 배열의 크기가 최대 2.. 2021. 4. 21.
[Programmers] 보석 쇼핑 문제 2020 카카오 인턴십 > 보석 쇼핑 코딩테스트 연습 - 보석 쇼핑 ["DIA", "RUBY", "RUBY", "DIA", "DIA", "EMERALD", "SAPPHIRE", "DIA"] [3, 7] programmers.co.kr 아이디어 이번 문제는 최적화하는 방법이 가장 중요하게 생각될 아이디어로 보입니다. 기본적으로 gems의 배열 크기가 최대 100,000까지 존재할 수 있기 때문에 DFS, BFS와 같은 알고리즘을 사용하면 시간이나 메모리가 펑펑 터지게 됩니다. 최대로 가능한 시간 복잡도는 O(nlogn) 정도이기 때문에 최대한 반복문 한 번만 사용하여 문제를 푸는 방법을 생각해야 됩니다. 제가 생각한 방법은 다음과 같습니다. 1. 결과로 나오게 될 구간 값을 [left, right]라.. 2021. 4. 20.
[Programmers] 섬 연결하기 문제 탐욕법(Greedy) > 섬 연결하기 코딩테스트 연습 - 섬 연결하기 4 [[0,1,1],[0,2,2],[1,2,5],[1,3,1],[2,3,8]] 4 programmers.co.kr 아이디어 이번 문제의 아이디어는 MST입니다. 소주제는 Greedy로 되어있지만 저는 MST에 더 적합한 문제라고 개인적으로 생각합니다. MST기법들인 프림이나 크루스칼 중 아무거나 사용해도 문제없이 풀 수 있을 것으로 보입니다. 저는 크루스칼을 이용하여 구현을 해봤습니다. 구현 코드 (JavaScript) class Node { constructor(a, b, val) { this.a = a; this.b = b; this.val = val; } } function solution(n, costs) { const n.. 2021. 4. 19.
[Programmers] 단어 변환 문제 깊이/너비 우선 탐색(DFS/BFS) > 단어 변환 코딩테스트 연습 - 단어 변환 두 개의 단어 begin, target과 단어의 집합 words가 있습니다. 아래와 같은 규칙을 이용하여 begin에서 target으로 변환하는 가장 짧은 변환 과정을 찾으려고 합니다. 1. 한 번에 한 개의 알파벳만 바꿀 수 programmers.co.kr 아이디어 이번 문제의 아이디어는 BFS입니다. DFS를 이용해도 풀릴지는 정확히 모르겠지만 DFS보단 BFS를 사용하는 게 더 효율적으로 풀릴 수 있는 문제입니다. 풀이법은 다음과 같습니다. 1. 시작단어를 queue에 담기 2. queue에 담긴 단어와 words에 있는 단어를 비교하여 변환이 가능한지 확인 3. 변환이 가능하고 words에 속하는 단어로 더 빠.. 2021. 4. 18.
[Programmers] 네트워크 문제 깊이/너비 우선 탐색(DFS/BFS) > 네트워크 코딩테스트 연습 - 네트워크 네트워크란 컴퓨터 상호 간에 정보를 교환할 수 있도록 연결된 형태를 의미합니다. 예를 들어, 컴퓨터 A와 컴퓨터 B가 직접적으로 연결되어있고, 컴퓨터 B와 컴퓨터 C가 직접적으로 연결되어 있 programmers.co.kr 아이디어 이번 문제의 아이디어는 문제 분류에도 나와있듯이 DFS/BFS입니다. 둘 중 아무거나 사용해도 문제는 풀 수는 있습니다. 저 같은 경우는 DFS를 이용하여 풀었습니다. 풀이법은 다음과 같습니다. 1. 컴퓨터를 탐색 2. 아직 방문하지 않은 컴퓨터면 방문 체크 후 DFS로 주변 컴퓨터들 탐색 3. 모든 컴퓨터를 방문할 때까지 1~2를 반복 구현 코드 (JavaScript) const solve .. 2021. 4. 17.
728x90
반응형