Best Reading 💖
-
내돈내산 패스트캠퍼스 이용 후기.. (feat: 사용자 경험)
하고 싶은 말은 참 많은데 패스트캠퍼스는 수강 후기를 남기는 곳도 없다.. 부정적인 얘기는 쓰고 싶지 않았지만 불만이 있고, 나 같은 개발 공부하는 분들, 여러 가지 공부하시는 분들에게 도움이 되었으면 한다. 나는 현재 개발 공부를 몇 달간 해오고 있고 현재 온라인의 다양한 플랫폼들로 여러 강의를 수강해 왔다. 부스트코스, 유데미, 노마드 코더, 프로그래머스, 유튜브, 패스트캠퍼스 등 그중 패스트캠퍼스는 강의가 안 좋다는 게 아니라 참 수강하기가 너무 불편하다. 내가 직접 느낀 그 이유를 적어보겠다. 1. 실제 모든 수강생들의 후기를 볼 수 없고 미리보기도 없어(유튜브에 조금 있음) 강의를 직접 결제하기 전까지 홈페이지에서 직접 강의를 경험해볼 수 없다. 일단 관심 가는 강의가 생겨 결제하기 전 후기를 ..
2022.12.20
-
[구름톤 챌린지 WEEK 3 - 탐색과 동적 프로그래밍] DAY 12. 발전기
DAY 12. 발전기 행렬에서의 효율적 탐색 문제 import sys from collections import deque n = int(sys.stdin.readline()) dq = deque() # 인덱스가 넘치는 것을 막기 위해 의미없는 데이터 한줄 늘려줌 arr = [(list(map(int, sys.stdin.readline().split())) + [0]) for i in range(n)] arr.append([0 for i in range(n + 1)]) dr = [1, -1, 0, 0] dc = [0, 0, -1, 1] count = 0 for r in range(n): for c in range(n): # 0이라면 상관 없음 if arr[r][c] == 0: continue # 1이라면..
2023.08.30
-
[구현] 이코테 기출 - 럭키 스트레이트(py)
문제 https://www.acmicpc.net/problem/18406 18406번: 럭키 스트레이트 첫째 줄에 점수 N이 정수로 주어진다. (10 ≤ N ≤ 99,999,999) 단, 점수 N의 자릿수는 항상 짝수 형태로만 주어진다. www.acmicpc.net 풀이 - 내 풀이 n = list(input()) first = 0 second = 0 for i in range(len(n)): if i > len(n)/2-1: second += int(n[i]) else: first += int(n[i]) if first == second: print('LUCKY') else: print('READY') - 책 풀이 n = input() length = len(n) summary = 0 # 왼쪽 부분의 ..
2023.07.30
-
[Greedy] 이코테 - 숫자 카드 게임(py)
문제 숫자 카드 게임은 여러 개의 숫자 카드 중에서 가장 높은 숫자가 쓰인 카드 한 장을 뽑는 게임이다. 단, 게임의 룰을 지키며 카드를 뽑아야 하고 룰은 다음과 같다. 1. 숫자가 쓰인 카드들이 N X M 형태로 놓여 있다. 이때 N은 행의 개수를 의미하며, M은 열의 개수를 의미한다. 2. 먼저 뽑고자 하는 카드가 포함되어 있는 행을 선택한다. 3. 그다음 선택된 행에 포함된 카드들 중 가장 숫자가 낮은 카드를 뽑아야 한다. 4. 따라서 처음에 카드를 골라낼 행을 선택할 때, 이후에 해당 행에서 가장 숫자가 낮은 카드를 뽑을 것을 고려하여 최종적으로 가장 높은 숫자의 카드를 뽑을 수 있도록 전략을 세워야 한다. 입력 조건 첫째 줄에 숫자 카드들이 놓인 행의 개수 N과 열의 개수 M이 공백을 기준으로 ..
2023.07.09
-
[프로그래머스] 옹알이 (2) - JS
✏️ 문제 설명 머쓱이는 태어난 지 11개월 된 조카를 돌보고 있습니다. 조카는 아직 "aya", "ye", "woo", "ma" 네 가지 발음과 네 가지 발음을 조합해서 만들 수 있는 발음밖에 하지 못하고 연속해서 같은 발음을 하는 것을 어려워합니다. 문자열 배열 babbling이 매개변수로 주어질 때, 머쓱이의 조카가 발음할 수 있는 단어의 개수를 return하도록 solution 함수를 완성해주세요. 제한사항 1 ≤ babbling의 길이 ≤ 100 1 ≤ babbling[i]의 길이 ≤ 30 문자열은 알파벳 소문자로만 이루어져 있습니다. 입출력 예 babbling result ["aya", "yee", "u", "maa"] 1 ["ayaye", "uuu", "yeye", "yemawoo", "ay..
2023.04.14
-
SQLD 합격 후기, 공부 방법 (+ 생활코딩 MySQL 강의 정리)
시험에 응시한 이유 '자기 분야에 시간, 돈 등을 얼마나 투자하는가'도 중요하다는 소리를 들었었고, 다른 공부하는 분들에 최소한 뒤쳐지고 싶지는 않아서 컴퓨터 관련 카테고리에서 상위권에 있는 책들을 한꺼번에 많이 구매했었다. 그중 자격증 관련 책은 하나가 정처기 책이었고 하나는 SQL 개발자 책이었다. 일단 베스트셀러에 있고 후기도 좋아 망설임 없이 책을 구매했다. 내가 처음 접한 DB는 서비스를 따라 만들어보며 mongoDB를 써봤는데 이후 DataBase Management System에 대해 더 잘 알고 싶었다. 책을 구매할 당시는 SQL이 DBMS의 종류이고, 많이 쓴다는 정도만 알고 나머지는 거의 처음 접했다. 공부한 방법 시험 몇 달 전 소마를 준비하면서(2차 코테에서 떨어졌지만) 프로그래머스..
2023.04.10
-
정보처리산업기사 필기 합격 후기.. 정처기와 헷갈리지 마세요
자격증을 따게 된 계기 여기저기 공고를 지원해 보려 다른 분들의 합격 후기를 읽어볼 때 이력서에 자격증 항목이 눈에 띄었다. 개발 공부를 하시는 분들이 공부하며 딴 SQLD, ADsP, 정처기, 리눅스 마스터 등 다양한 자격증을 보고 자격증의 존재를 알게 되었고 나도 이왕 공부하는 것 CS 관련 학위가 없기 때문에 자격증을 따는 것도 좋겠다 싶어 근래의 시험이 있는 정처기와 SQLD를 일단 준비하게 되었다. 자격증 후기 개발을 하는데 자격증은 필요없다고 하지만 실제로 준비해 보니 나에게는 도움이 되었다. CS지식이 중요하다해서 CS 공부를 이미 어느 정도 한 상태에서 정처기 시험이 한 달쯤 남았을 때 사놓은 책을 펴보니 이미 공부했던 내용이라 복습하고 거기서 더 확장되어 연결된 내용들이을 공부할 수 있어..
2023.03.05
-
[에라토스테네스의 체] 프로그래머스 소수 찾기 - JS
✏️ 문제 설명 1부터 입력받은 숫자 n 사이에 있는 소수의 개수를 반환하는 함수, solution을 만들어 보세요. 소수는 1과 자기 자신으로만 나누어지는 수를 의미합니다. (1은 소수가 아닙니다.) 제한 조건 n은 2이상 1000000이하의 자연수입니다. 입출력 예 n result 10 4 5 3 입출력 예 설명 입출력 예 #1 1부터 10 사이의 소수는 [2,3,5,7] 4개가 존재하므로 4를 반환 입출력 예 #2 1부터 5 사이의 소수는 [2,3,5] 3개가 존재하므로 3를 반환 ✏️ 문제 풀이 function solution(n) { let result = new Array(n); // 2 ~ n 범위 for (let i = 2; i
2023.02.11
-
가장 큰 수 - JavaScript / 2자리수 이상 비교해 정렬하기
✏️ 문제 설명 0 또는 양의 정수가 주어졌을 때, 정수를 이어 붙여 만들 수 있는 가장 큰 수를 알아내 주세요. 예를 들어, 주어진 정수가 [6, 10, 2]라면 [6102, 6210, 1062, 1026, 2610, 2106]를 만들 수 있고, 이중 가장 큰 수는 6210입니다. 0 또는 양의 정수가 담긴 배열 numbers가 매개변수로 주어질 때, 순서를 재배치하여 만들 수 있는 가장 큰 수를 문자열로 바꾸어 return 하도록 solution 함수를 작성해주세요. 제한 사항 numbers의 길이는 1 이상 100,000 이하입니다. numbers의 원소는 0 이상 1,000 이하입니다. 정답이 너무 클 수 있으니 문자열로 바꾸어 return 합니다. 입출력 예 numbers return [6, 1..
2023.01.25
-
[인공지능(AI) 기초다지기] Python의 조건문과 반복문, 연습 문제 풀기
* Conditionals and Loops 🐍 Python의 조건문과 반복문 x is y는 값과 메모리 주소를 비교한다. 예전 파이썬은 느려서 자주 쓰는 -5 ~ 256 숫자 값은 정적 메모리에 저장했고 a = 5 b= 5 이렇게 다른 변수명을 지정해 줘도 위 범위의 값은 같은 메모리 주소를 가리켜 a is b를 하면 True를 반환한다. 하지만 이 범위를 넘어가면 값이 같아도 메모리 주소가 다르기 때문에 -6 == -6은 False가 반환된다. x is not y은 값과 메모리 주소가 다르지 않은지 검사한다. Python에서는 조건 ? (true일 때) : (false일 때) 대신 (true일 때) if 조건 else (false일 때)로 삼항 연산자를 써준다. while(True): 와 같은 조건문..
2023.01.16
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