Best Reading 💖
-
내돈내산 패스트캠퍼스 이용 후기.. (feat: 사용자 경험)
하고 싶은 말은 참 많은데 패스트캠퍼스는 수강 후기를 남기는 곳도 없다.. 부정적인 얘기는 쓰고 싶지 않았지만 불만이 있고, 나 같은 개발 공부하는 분들, 여러 가지 공부하시는 분들에게 도움이 되었으면 한다. 나는 현재 개발 공부를 몇 달간 해오고 있고 현재 온라인의 다양한 플랫폼들로 여러 강의를 수강해 왔다. 부스트코스, 유데미, 노마드 코더, 프로그래머스, 유튜브, 패스트캠퍼스 등 그중 패스트캠퍼스는 강의가 안 좋다는 게 아니라 참 수강하기가 너무 불편하다. 내가 직접 느낀 그 이유를 적어보겠다. 1. 실제 모든 수강생들의 후기를 볼 수 없고 미리보기도 없어(유튜브에 조금 있음) 강의를 직접 결제하기 전까지 홈페이지에서 직접 강의를 경험해볼 수 없다. 일단 관심 가는 강의가 생겨 결제하기 전 후기를 ..
2022.12.20
-
개발자는 타자가 중요할까? - 독수리 타자에서 열손가락으로 타자 치기 도전 / 타자 연습 추천 사이트
한번 잘못 든 습관은 고치기 정말 어렵다. 하지만 고친다. 내가 독수리 타자가 된 이유 초등학교 때 방과 후로 ITQ 같은 컴퓨터 자격증을 따는 게 흔했다. 한글 문서를 빨리 치는 게 시험에 유리했고, 문제를 먼저 푼 친구들은 게임을 할 수 있게 해주었다. 그래서 나는 처음 타자를 배울 때부터 초등학교 저학년 시절 인내심이란 없었고, 최대한 어떻게든 타자를 빨리 치려고 하다 보니 독수리 타자가 되었다. 학교 컴퓨터 수업 시간에도 갈색 바탕의 한컴 타자 프로그램을 연습하게 한 후 먼저 000타 이상이 나오거나 잘하는 애들은 다 게임을 하게 해 줬는데, 역시 나는 그 컴퓨터실에 있는 산타게임이 너무 재밌었다(산타가 돌아다니며 선물을 먹는 게임이었는데 정말 재밌었다). 사실 독수리 타자도 본인이 언급하지 않으..
2023.01.31
-
타입스크립트 인터페이스
인터페이스 인터페이스 /** * 인터페이스 */ interface Person { readonly name: string; age?: number; sayHi(): void; sayHi(a: number, b: number): void; } const person: Person = { name: "Rachel", sayHi: function () { console.log("Hi"); }, }; person.sayHi(); person.sayHi(1, 2); 인터페이스 확장하기 /** * 인터페이스의 확장(상속) */ interface Animal { name: string; color: string; } interface Dog extends Animal { isBark: boolean; } const ..
2023.10.23
-
[백준 2108번] 통계학, 두번째로 작은 최빈값 세기(Counter 활용)
문제 2108번: 통계학 첫째 줄에 수의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 단, N은 홀수이다. 그 다음 N개의 줄에는 정수들이 주어진다. 입력되는 정수의 절댓값은 4,000을 넘지 않는다. www.acmicpc.net 풀이 import sys, math from collections import Counter input = sys.stdin.readline # 산술평균, 중앙값, 최빈값, 범위(최댓값 - 최솟값) 출력 n = int(input()) arr = [] for _ in range(n): arr.append(int(input())) arr.sort() avg = round(sum(arr) / len(arr)) median = arr[len(arr) // 2] print(avg..
2023.10.11
-
TypeError [ERR_UNKNOWN_FILE_EXTENSION] Unknown file extension ".ts” 해결
인프런의 한 입 크기로 잘라먹는 타입스크립트(TypeScript)의 타입스크립트 컴파일러 옵션 설정하기 강의를 듣다가 난 오류를 정리한 글입니다. 파일 설정 tsconfig.json { "compilerOptions": { "target": "ESNext", "module": "ESNext", "outDir": "dist", "strict": true, "moduleDetection": "force" }, "ts-node": { "esm": true }, "include": ["src"] } 강의에 나온 방법대로 설정 package.json { "name": "section1", "version": "1.0.0", "description": "", "main": "index.js", "scripts": ..
2023.10.04
-
[구름톤 트레이닝 풀스택 2기] 한 달 후기
구름톤 트레이닝 과정을 진행하면서 회고를 계속 작성하고 싶었는데 할 일 목록이 쌓이다보니 계속 미뤄져 주차 회고가 아니라 한 달 회고(8/14 ~ 9/11)가 되었다. 무리해서 작성하지는 않고 기록을 남기며 쓰고 싶을 때 일단 쓰기로 했다. 내년 2월까지의 6개월 과정이니 달마다 회고는 꼭 진행하려고 한다! 알고리즘, CS 스터디를 금요일마다 모여 진행하는데 주간회고도 추가해 매주 팀원들과 한 주간 상황을 공유하고도 있다. 한 달 동안 무엇을 했나? 알고리즘 능력 향상 처음 주에 알고리즘 3문제만 해도 '실버 상 ~ 골드 난이도'가 너무 어려웠는데 지금은 처음 보는 유형이면 유형 공부를 먼저 하고 문제를 풀어나가 혼자 힘으로 푸는 문제가 생길 때 너무 뿌듯하다. 10월 초까지 골드가 목표인데 지금 실버 ..
2023.09.11
-
[백준 2745, 11005번] 진법 변환1, 진법 변환2
문제 https://www.acmicpc.net/problem/2745 2745번: 진법 변환 B진법 수 N이 주어진다. 이 수를 10진법으로 바꿔 출력하는 프로그램을 작성하시오. 10진법을 넘어가는 진법은 숫자로 표시할 수 없는 자리가 있다. 이런 경우에는 다음과 같이 알파벳 대문자를 www.acmicpc.net https://www.acmicpc.net/problem/11005 11005번: 진법 변환 2 10진법 수 N이 주어진다. 이 수를 B진법으로 바꿔 출력하는 프로그램을 작성하시오. 10진법을 넘어가는 진법은 숫자로 표시할 수 없는 자리가 있다. 이런 경우에는 다음과 같이 알파벳 대문자를 www.acmicpc.net 풀이 - 진법 변환 n, b = input().split() print(int..
2023.08.18
-
[프로그래머스] 추억 점수 - JS
✏️ 문제 설명 사진들을 보며 추억에 젖어 있던 루는 사진별로 추억 점수를 매길려고 합니다. 사진 속에 나오는 인물의 그리움 점수를 모두 합산한 값이 해당 사진의 추억 점수가 됩니다. 예를 들어 사진 속 인물의 이름이 ["may", "kein", "kain"]이고 각 인물의 그리움 점수가 [5점, 10점, 1점]일 때 해당 사진의 추억 점수는 16(5 + 10 + 1)점이 됩니다. 다른 사진 속 인물의 이름이 ["kali", "mari", "don", "tony"]이고 ["kali", "mari", "don"]의 그리움 점수가 각각 [11점, 1점, 55점]]이고, "tony"는 그리움 점수가 없을 때, 이 사진의 추억 점수는 3명의 그리움 점수를 합한 67(11 + 1 + 55)점입니다. 그리워하는 사..
2023.04.14
-
정보처리산업기사 필기 합격 후기.. 정처기와 헷갈리지 마세요
자격증을 따게 된 계기 여기저기 공고를 지원해 보려 다른 분들의 합격 후기를 읽어볼 때 이력서에 자격증 항목이 눈에 띄었다. 개발 공부를 하시는 분들이 공부하며 딴 SQLD, ADsP, 정처기, 리눅스 마스터 등 다양한 자격증을 보고 자격증의 존재를 알게 되었고 나도 이왕 공부하는 것 CS 관련 학위가 없기 때문에 자격증을 따는 것도 좋겠다 싶어 근래의 시험이 있는 정처기와 SQLD를 일단 준비하게 되었다. 자격증 후기 개발을 하는데 자격증은 필요없다고 하지만 실제로 준비해 보니 나에게는 도움이 되었다. CS지식이 중요하다해서 CS 공부를 이미 어느 정도 한 상태에서 정처기 시험이 한 달쯤 남았을 때 사놓은 책을 펴보니 이미 공부했던 내용이라 복습하고 거기서 더 확장되어 연결된 내용들이을 공부할 수 있어..
2023.03.05
-
[JS] JavaScript에서 Number, 문자열 진법 자유롭게 변환하기 / 3진법 뒤집기
처음 '해당 숫자를 0진수로 변환해라'를 보면 당황스러울텐데 아주 간단하게 바꿔주는 메서드가 있다. 해당 숫자에 .toString(바꾸고 싶은 진수) 해주면 된다. ▶ Number.prototype.toString() toString() toString(radix) : toString() 메서드는 지정된 숫자 값을 나타내는 문자열을 반환한다. - 16진수부터 9보다 큰 숫자를 나타내기 위해 a~f 알파벳 문자가 사용된다. - 지정된 숫자 값이 음수이면 부호가 유지된다. - 숫자가 정수가 아닌 경우 소수점(decimal point, .)을 사용하여 소수점을 구분하고, 기수가 10이고 숫자의 크기가 10**21 보다 크거나 같거나 10**-6 보다 작은 경우 과학적 표기법(Scientific notation..
2023.01.25
Fresh Pot ☕️
-
[백준 24479, 24480번] 알고리즘 수업 - 깊이 우선 탐색 1, 2
문제https://www.acmicpc.net/problem/24479https://www.acmicpc.net/problem/24480풀이- 알고리즘 수업 - 깊이 우선 탐색 1# N개의 정점과 M개의 간선으로 구성된 무방향 그래프# 정점 R에서 시작해 깊이 우선 탐색한 노드 방문 순서 출력import syssys.setrecursionlimit(10 ** 6)input = sys.stdin.readline# 정점의 수, 간선의 수, 시작 정점N, M, R = map(int, input().split())graph = [[] for _ in range(N+1)]visited = [0] * (N+1)cnt = 1def dfs(graph, visited, r): global cnt visited..
2024.04.29
-
[공지] Velog로 블로그 이전중 🚚
개발 공부를 시작하고 처음 써오던 블로그를 이전하고 있습니다.현재 tistory 블로그를 아예 안쓰고 싶진 않아서 백준 문제 풀이 정도만 이곳에 남기고 있습니다.제 최근 근황이나 프로젝트, 다른 다양한 포스팅을 보고 싶으시면 Velog 방문해주시면 감사합니다 😃 https://velog.io/@hi-rachel/posts hi-rachel (Rachel) / 작성글 - velog기존 블로그: https://hi-rachel.tistory.comvelog.io 앞으로 계속 어디에 포스팅할지는 모르겠지만 글을 쓰는 곳이 크게 중요하진 않은 것 같아요.Velog가 UI가 예쁘지만 버그도 많고.. 티스토리는 좀 덜 예쁘고.. 장단점이 있는 것 같습니다.여러가지 시도해 보고 좋은 글로 ..
2024.04.21
-
[백준 24444, 24445번] 알고리즘 수업 - 너비 우선 탐색 1, 2
문제https://www.acmicpc.net/problem/24444
2024.04.21
-
[백준 28279번] 덱 2 - Python, 덱 주요 메서드/시간 복잡도
문제 28279번: 덱 2 첫째 줄에 명령의 수 N이 주어진다. (1 ≤ N ≤ 1,000,000) 둘째 줄부터 N개 줄에 명령이 하나씩 주어진다. 출력을 요구하는 명령은 하나 이상 주어진다. www.acmicpc.net 풀이 import sys from collections import deque input = sys.stdin.readline deq = deque() N = int(input()) for _ in range(N): order = list(map(int, input().split())) if order[0] == 1: deq.appendleft(order[1]) elif order[0] == 2: deq.append(order[1]) elif order[0] == 3: if (deq):..
2024.04.03
-
[백준 1890번] 점프 - Python
문제 1890번: 점프 첫째 줄에 게임 판의 크기 N (4 ≤ N ≤ 100)이 주어진다. 그 다음 N개 줄에는 각 칸에 적혀져 있는 수가 N개씩 주어진다. 칸에 적혀있는 수는 0보다 크거나 같고, 9보다 작거나 같은 정수이며, 가장 www.acmicpc.net 풀이 import sys input = sys.stdin.readline n = int(input()) game_map = [list(map(int, input().split())) for _ in range(n)] dp = [[0] * n for _ in range(n)] dp[0][0] = 1 def move(): for i in range(n): for j in range(n): k = game_map[i][j] if k == 0: cont..
2024.03.28
-
[백준 10844번] 쉬운 계단 수 - Python
문제 10844번: 쉬운 계단 수 첫째 줄에 정답을 1,000,000,000으로 나눈 나머지를 출력한다. www.acmicpc.net 풀이 import sys input = sys.stdin.readline n = int(input().rstrip()) d = [[0] * 10 for _ in range(n+1)] for i in range(1, 10): d[1][i] = 1 for i in range(2, n+1): for j in range(10): if j == 0: d[i][j] = d[i-1][1] elif j == 9: d[i][j] = d[i-1][8] else: d[i][j] = d[i-1][j-1] + d[i-1][j+1] print(sum(d[n]) % 1000000000) 이해하는데 ..
2024.03.22
-
[4963번] 섬의 개수 - Python
문제 4963번: 섬의 개수 입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스의 첫째 줄에는 지도의 너비 w와 높이 h가 주어진다. w와 h는 50보다 작거나 같은 양의 정수이다. 둘째 줄부터 h개 줄에는 지도 www.acmicpc.net 풀이 import sys input = sys.stdin.readline from collections import deque # 한 정사각형과 가로, 세로 또는 대각선으로 연결되어 있는 사각형은 걸어갈 수 있음 dx = [-1, 0, -1, +1, +1, 0, +1, -1] dy = [-1, -1, +1, 0, +1, +1, -1, 0] def bfs(i, j): queue.append((i, j)) visited[i][j] = 1 while que..
2024.03.19
-
[백준 11725번] 트리의 부모 찾기 🤯
문제 11725번: 트리의 부모 찾기 루트 없는 트리가 주어진다. 이때, 트리의 루트를 1이라고 정했을 때, 각 노드의 부모를 구하는 프로그램을 작성하시오. www.acmicpc.net 풀이 예제 입력 1에 대한 트리 1 / \ 6 4 / / \ 3 7 2 / 5 BFS import sys input = sys.stdin.readline from collections import deque # 노드의 개수 N (2 ≤ N ≤ 100,000) N = int(input().rstrip()) tree = [[] for _ in range(N+1)] for i in range(1, N): a, b = map(int, input().split()) tree[a].append(b) tree[b].append(a) ..
2024.03.15
-
[백준 2468번] 안전 영역 - Python
문제 2468번: 안전 영역 재난방재청에서는 많은 비가 내리는 장마철에 대비해서 다음과 같은 일을 계획하고 있다. 먼저 어떤 지역의 높이 정보를 파악한다. 그 다음에 그 지역에 많은 비가 내렸을 때 물에 잠기지 않는 www.acmicpc.net 풀이 from collections import deque import sys input = sys.stdin.readline N = int(input()) max_rain = 0 graph = [] for _ in range(N): row = list(map(int, input().split())) graph.append(row) max_row = max(row) max_rain = max(max_rain, max_row) now_rain = 1 max_safe..
2024.03.14
-
[백준 2589번] 보물섬 - PyPy3
문제 2589번: 보물섬 보물섬 지도를 발견한 후크 선장은 보물을 찾아나섰다. 보물섬 지도는 아래 그림과 같이 직사각형 모양이며 여러 칸으로 나뉘어져 있다. 각 칸은 육지(L)나 바다(W)로 표시되어 있다. 이 지도에서 www.acmicpc.net 예전에 푼 문제인데 오랜만에 다시 푸니 이틀 정도 애먹었다.. python으로 제출시 시간 초과가 나서 PyPy3로 제출. 풀이 # 2589번 보물섬 # 육지 L, 바다 W # 상하좌우 육지 이동 가능, 한 칸 이동시 한 시간 # 보물 -> 서로 간에 최단 거리로 이동(BFS)하는데 있어 가장 긴 시간이 걸리는 육지 두 곳에 나뉘어 묻혀있음. # -> 끝에서 끝으로 이동시 서로 가장 긴 시간이 걸리는 육지에서 최단거리를 구해라! (완전 탐색) # 보물이 묻혀 ..
2024.03.14
-
[백준 11724번] 연결 요소의 개수 - Python, DFS/BFS
문제 11724번: 연결 요소의 개수 첫째 줄에 정점의 개수 N과 간선의 개수 M이 주어진다. (1 ≤ N ≤ 1,000, 0 ≤ M ≤ N×(N-1)/2) 둘째 줄부터 M개의 줄에 간선의 양 끝점 u와 v가 주어진다. (1 ≤ u, v ≤ N, u ≠ v) 같은 간선은 한 번만 주어 www.acmicpc.net 정점(N)과 간선(M)의 개수가 주어질 때 연결 요소의 개수를 구하라. (1 ≤ N ≤ 1,000, 0 ≤ M ≤ N×(N-1)/2) 간선 u, v (1 ≤ u, v ≤ N, u ≠ v) 대표적인 DFS/BFS 문제이다. 시간 제한 3초, 메모리 제한 512 MB에 주의해야 한다. 풀이 ✏️ DFS import sys input = sys.stdin.readline sys.setrecursion..
2024.03.12
-
[백준 2667번] 단지번호붙이기 - Python
문제 2667번: 단지번호붙이기 과 같이 정사각형 모양의 지도가 있다. 1은 집이 있는 곳을, 0은 집이 없는 곳을 나타낸다. 철수는 이 지도를 가지고 연결된 집의 모임인 단지를 정의하고, 단지에 번호를 붙이려 한다. 여 www.acmicpc.net 풀이 # 1 - 집이 있는 곳, 0 - 집이 없는 곳 # 단지 수 출력, 각 단지에 속하는 집의 수를 오름차순으로 정렬하여 출력해라. import sys input = sys.stdin.readline # 정사각형 지도 크기 n = int(input()) square_map = [] for i in range(n): square_map.append(list(map(int, input().rstrip()))) cnt = 0 result = 0 def dfs(x..
2024.03.09
-
[구름톤 트레이닝 풀스택 2기] 2차 스터디 결과 2등 수상, 2달 회고
23.10.12 ~ 23.11.30 동안 진행된 2차 스터디가 끝났다. 2차 스터디에서 새로운 분들과 스터디를 하게 되었는데 다들 너무 좋은 분들이어서 상호존중하는 분위기에서 잘 학습할 수 있었다. 팀원분들이 아침마다 매일 파이팅 메세지를 보내주셔서 진짜 스터디 기간 내내 기분 좋게 시작할 수 있었다~ 2차 스터디 목표 2차 스터디 성과 - CS, 알고리즘 스터디 100% 참석 - 혼공컴운 완독 - 꾸준히 기록, 문서화 - 매일 TIL하는 습관 - 긍정적이고 서로 배려하는 팀 분위기에서 많이 배움(소프트 스킬) CS 구름에서 제공한 혼공컴운 책으로 다 같이 스터디하니 혼자 읽을 때보다 체계적으로 빠르게 읽어 완독까지 할 수 있었다. 매주 2회 랜덤 발표로 스터디하면서 헷갈리거나 모르는 내용 토론하면서도 ..
2023.11.30
-
연결된 GitHub 저장소 초기화하기
마주친 상황: 원격 저장소를 새로 만들어 로컬에서 기존에 연결된 저장소를 없애고 새롭게 만든 저장소로 연결하고자 함. git 초기화 로컬 저장소의 .git directory 삭제하기 rm -rf ./git 로컬 저장소 초기화 git init 이후 원래 연결해주던대로 연결해주고 첫 커밋을 해주고 올려준다~ 다시 연결 후 커밋, 푸시 git add . git commit -m "init" git branch -M main git remote add origin https://github.com/github-id/repository.git git push -u origin main 끝!
2023.11.05
-
[DFS/BFS] 탐색 알고리즘 이해하기, 주요 예시 문제
📌 DFS, BFS에서 중요한, 알아야 할 개념 - 스택 - 큐 - 재귀 함수 📍 반복문, 재귀 함수 2가지 방식으로 구현한 팩토리얼(!) 예제 # 반복적으로 구현한 n! def factorial_iterative(n): result = 1 for i in range(1, n + 1): result *= i return result # 재귀적으로 구현한 n! def factorial_recursive(n): if n 연결 리스트 이용 -> 파이썬 2차원 리스트(append, 메소드 제공) 이용하면 된다. - 연결된 정보만을 저장하기 때문에 메모리를 효율적으로 사용 -> 인접 행렬 방식에 비해 특정한 두 노드가 연결되어 있는지에 대한 정보를 얻는 속도가 느리다. 그래프 그래프는 노드(Node)와 간선(Ed..
2023.10.31