전체 글 124

24년 6월 회고

6월 회고는 상반기 회고로 작성합니다. Keep 스터디  1월부터 시작한 PS/CS 스터디를 꾸준히 진행했다. 매주 2회 모여서 코딩 테스트 문제를 풀이하고, CS 내용을 학습해서 발표하고 피드백을 주고받았다.CS는 컴퓨터 네트워킹 하향식 접근>을 기반으로 공부한 네트워크와 알고리즘, 알고리즘 10판(공룡책)>으로 운영체제를 학습해서 발표했다. 모두 전공필수로 배운 내용들이지만, 다시 정리하고 설명해 보면서 내가 자세히 알지 못했던 개념을 더 확실히 파악할 수 있는 기회가 되었다. 현재는 모던 자바스크립트 Deep Dive>를 위주로 JS를 공부해보고 있다.PS는 백준 골드 문제 위주로 풀어나가고 있다. 스터디를 시작했을 때에는 DFS/BFS도 어색한 수준이었지만, 꾸준히 여러 문제를 풀어본 덕분에 실력..

<소프트 스킬> - 존 손메즈

📖 책 소개 평범한 개발자의 비범한 “인생 전략” 74가지 라는 부제목 처럼, ‘개발자를 위한 자기개발서’라는 설명이 잘 어울리는 책이다. 요즘들어 개발자에게 특히 강조되는 능력이 ‘소프트 스킬’이다. 소프트 스킬은 프로그래밍 실력같은 ‘하드 스킬’과 달리, 의사소통 능력 같이 협력에 필요한 비기술적인 능력을 말한다. 이런 소프트 스킬을 기르기 위한 방법들이 책에 소개되어 있다. 책은 총 7부로 구성되어 있다. 초반부는 “경력”, “학습”, “생산성” 같은 개발자에게 필요한 전략이 소개되어 있고, 후반부에는 “재무관리”, “건강” 같이 개발자에게 특화된 내용이 아닌 일반적인 자기개발서에서 찾아볼 수 있는 전략을 담았다. 책을 처음 읽을 때는 저자가 일하는 미국과 한국의 차이를 고려해가면서 읽었는데, 생..

2024 팀네이버 신입 공채 후기

팀네이버 신입 공채 전체 일정이 끝나게 되어, 채용 과정을 복기할 겸 지원 후기를 작성해 봅니다. 1. 서류 접수 자기소개서는 3개 문항이었고, 마지막 문항은 필수가 아닌 선택이었다. 분량이 1000자 정도로 널널했기 때문에, 어떤 내용을 적을지 고민이 많았다. 자기소개서는 약 2주간의 접수기간 동안 매일 읽고 고치기를 반복했다. 피드백도 주고받으며 계속 고쳐나가는 과정에서 '나는 어떤 개발자인가', '나는 어떤 장점을 가지고 있는가'에 대해 고민을 많이 할 수 있었다. 처음에는 단순히 1000자를 채워나가기 위한 고민이었지만, 계속해서 글을 써보면서 나 자신을 돌아볼 수 있는 기회가 되었다. 추상적으로만 생각했던 개발에 대한 생각이 글로 적는 과정에서 더 명확해졌다. 서류에서 탈락하더라도 뜻깊은 경험이..

회고 2024.06.18

[Python] 줄 세우기 (백준 7570번)

문제 https://www.acmicpc.net/problem/7570  문제 풀이 과정N=100만이고, N log N ~ 2000만이므로 O(NlogN) 시간 내에 풀어야 하는 문제입니다. 처음 봤을 때 떠오른 방식은 최장 증가 부분수열(LIS) 이었습니다. (처음 풀이 코드 - 실패)import sysinput = sys.stdin.readlinen = int(input())data = list(map(int, input().split()))# target 보다 작은 값 중 가장 큰 값의 index 반환def binary_search(array, target): start, end = 0, len(array) - 1 result = -1 while start = len(dp): ..

[Python] 피보나치 함수 (백준 1003번)

문제 https://www.acmicpc.net/problem/1003  문제 풀이 과정 전형적인 dp 문제입니다. dp[n]에 fibonacci(n)을 호출했을 때, 0과 1이 각각 몇 번 출력되는지 저장하도록 해보겠습니다.배열의 첫 원소는 0이 출력되는 횟수, 두 번째 원소는 1이 출력되는 횟수를 저장하는 식으로 구현하겠습니다. 먼저 손으로 dp[0]부터 값을 채워보면서 규칙을 찾아보겠습니다. dp[0]과 dp[1]은 예시에서도 나와있듯이 [1,0]과 [0,1]입니다.dp[2]는 dp[0]과 dp[1]을 호출하므로 두 값을 합한 값인 [1,1]이 되고,마찬가지로 dp[3]도 dp[1]과 dp[2]를 합한 값이 됩니다. dp[i][0] = dp[i - 1][0] + dp[i - 2][0]dp[i][1]..

[Python] 색상환 (백준 2482번)

문제 https://www.acmicpc.net/problem/2482 문제 풀이 과정 일단 규칙성을 찾아보기 위해 n=4부터 7, k=1부터 4까지의 값을 손으로 계산해 보았습니다.  풀면서 찾게 된 점화식은 다음과 같습니다.dp[n][k] = dp[n-2][k-1] + dp[n-1][k]예를 들어, 각 색상을 1번부터 n번까지의 번호라고 가정하고 1번과 n번이 연결되었다고 해보겠습니다.n=7, k=3 인 상황에서 가능한 경우는 다음과 같습니다.1 3 61 4 62 4 72 5 73 5 71 3 52 4 6위의 경우를 잘 살펴보면 n=5, k=2일 때 가능한 값에6과 7이 추가된 경우의 수가 있고1 3 + 61 4 + 62 4 + 72 5 + 73 5 + 7n=6, n=3일때 가능한 ..

[Python] 타일 채우기 (백준 2133번)

문제 https://www.acmicpc.net/problem/11726  문제 풀이 과정  예전에 풀었던 2xn 타일링 문제와 비슷해서 바로 dp 문제라는 것을 떠올릴 수 있었습니다. dp 테이블은 dp[n]이 3*n 크기의 벽을 채울 수 있는 경우의 수로 가정하고 만들었습니다. 규칙을 찾기 위해서 위의 그림처럼 하나씩 경우의 수를 그려가며 풀어보았습니다. 그 결과n=홀수 인 벽은 채울 수 없다.n=2인 경우에는 3가지 경우가 가능n=4인 경우부터는 기존의 조합을 사용하지 않는 2개의 새로운 경우와, 기존의 조합을 활용한 경우의 수가 존재한다.라는 규칙을 찾았습니다. 조금 더 구체적으로 설명하면, n=4 이상일 때 가능한 경우의 수는 다음과 같습니다.기존 경우의 수로 채우지 못하는 2가지 경우먼저 2칸..

24년 5월 회고

Keep 채용과정 복기와 휴식 팀네이버 신입공채 과정을 게시글로 정리하면서 복기해 보았다. 인터뷰 기회도 받고, 대기업 채용 절차를 한번 밟아보면서 짧은 기간동안 많이 성장할 수 있었음에 감사하다.월말에는 조금 머리를 비울 겸 일주일 정도 국내 여행을 다녀왔다. 하루 이틀을 제외하고는 꾸준히 커밋 기록을 채워왔던 깃허브 잔디에 고속도로가 생겼지만, 휴식을 하는 동안 다시 코딩에 대한 열정이 채워진 것 같다.개발 학습 면접이 끝나면 하겠다고 미뤄왔던 일들을 하나씩 처리하고 있다.이력서 페이지에도 목표로 했던 다크모드나 목차(TOC)와 같은 기능을 추가했고, 티스토리 스킨도 원하는 대로 조금 편집했다. Try 신입 채용 일정이 많지 않아서 조금 여유를 가지고 학습을 이어가려고 한다. 이참에 자바스크립트 기초..

24년 4월 회고

Keep 면접 경험 운 좋게도 네이버 신입공채 기술 역량 인터뷰 대상자로 선정되어 면접 기회를 얻었다.짧은 기간이지만 부지런히 면접 준비를 해보고, 실제 면접을 경험해보면서 많은 것을 배울 수 있었다.그동안은 막연하게 남들이 준비하는 것을 따라서 준비해왔지만, 이제는 내가 어떤 점을 더 보완하고 집중해서 공부해야 할 지 감이 잡혀가는 것 같다.글쓰기 면접 준비로 바빴던 4월 초에는 게시글을 작성하지 못했지만, 그래도 3개의 글을 더 작성해 보았다. 지난달에 시작한 포스팅 인증 스터디도 무사히 마쳤다.그동안 작성했던 독서 기록들도 지난달과 같이 매일 하나씩 정리해서 네이버 블로그에 올렸다. Problem 지난 달부터 코딩 테스트와 면접 준비에 집중하느라, 꾸준히 계속해왔던 독서와 달리기 같은 자기관리에 소..

자바스크립트가 숫자를 저장하는 방법 (IEEE 754)

1. 개요   자바스크립트에서 0.1 + 0.2는 0.3이 아닙니다.  사실 알고 보면 C언어와 자바, 파이썬에서도 같은 오류가 발생합니다.왜 이런 오류가 발생하고, 어떻게 정확한 실수 연산을 할 수 있을지 알아보도록 하겠습니다. 2. 자바스크립트가 숫자를 저장하는 방법 우선 자바스크립트에서는 숫자를 어떻게 저장하는지 알아보겠습니다. 자바스크립트는 C언어의 int, float, double처럼 실수와 정수를 구분하지 않고, 모든 숫자를 number 타입으로 저장합니다.ECMAScript 사양에 따르면, number 타입은 IEEE 754 표준을 이용해 숫자를 저장합니다. IEEE 754는 부동소수점을 표현하는 가장 널리 쓰이는 표준으로, C와 C++, Java의 double 타입, Python의 floa..

WEB/💡 Javascript 2024.04.28