분류 전체보기
-
소수 (Prime) - JavaScript알고리즘/Javascript 문제 2025. 4. 1. 01:26
코딩테스트 스터디에 들어갔다. 문제를 자주 푸는 습관을 만들어갈 수 있을 것 같다. 오늘은 JS를 활용해서 주어지는 두 수 사이의 소수를 구하는 함수를 이해한 바를 정리하고,백준 문제 1929번에 제출한 답안 기록한다. 소수 (Prime Number) 소수는 1보다 큰 자연수 중에서 1과 자기 자신만을 약수로 가지는 수를 의미한다.그렇기 때문에 아래와 같은 특징들을 갖는다.소수는 항상 두 개의 약수(1과 자신)만을 가진다.2를 제외하고는 모든 소수는 홀수이다.소수의 자연수 내에서 규칙적으로 나타나지 않으며, 분포가 불규칙적이고 개수는 무한하다.JS 구현입력값을 정렬하여 역순 입력도 대응 가능하다.소수를 판별하는 함수인 isPrime을 분리하여 구현하였다.범위 내 각 숫자에 대해 소수를 판별하여 배열에 저..
-
백엔드 개발자 학습 로드맵 - JSCODE 박재성Back-end 개발 2025. 3. 21. 09:58
가끔 유튜브에서 보던 JSCODE의 백엔드 로드맵이 나왔다고 해서 보게 되었다.나는 프론트엔드 개발자이지만 백엔드 공부가 필요할 때 참고할 수 있도록 기록한다. 1. (기본) 프로젝트 역량1-1. HTML, CSS, JavaScript 기본: 한 페이지짜리 웹 사이트를 스스로 만들 수 있는 정도 1-2. Git, Github: Commit, Push, Clone 명령어만 익숙해지기 (CLI) 1-3. 프로그래밍 언어 학습 (JavaScript/TypeScript) : 기본 문법 위주로 학습한 이후에 바로 다음 단계1-4. 백엔드 프레임워크 (Express.js/Next.js) 기초편: DB 없이 REST API로 설계해서 요청 및 응답하기 1-5. DB 기본, 자주 사용하는 SQL문 위주로 학습: DB..
-
순열, 조합, 팩토리얼 - JavaScript알고리즘/Javascript 문제 2025. 3. 13. 21:59
알고리즘 문제를 풀때 재귀적으로 모든 경우의 수에 대해 접근할 때가 있다.이때 응용할 수 있는 기본적인 팩토리얼, 조합, 순열의 JavaScript 코드를 기록하고 공유한다.1. 팩토리얼 (Factorial)[네이버 사전]1 부터 n 개의 양의 정수를 모두 곱한 것을 n 계승(factorial)이라고 하고, n! 로 나타낸다.즉, n! = 1 x 2 x 3 x ... x (n-1) x n 이다.n! = n x (n-1)! 의 성질에서 n이 1일 때, 1 = 1 x 0!이 되므로 0! = 1로 약속한다. JS 구현재귀함수를 이해하는데 가장 기본적인 예제라고 할 수 있다.재귀함수와 반복문을 사용한 두 가지 방법으로 구현해 볼 수 있다.다음에 구현할 순열과 조합에서는 재귀함수를 사용하므로 재귀함수를 더 눈여겨..
-
[42경산] 3기 1차 라피신 회고 - shell 명령어 (3)Linux Shell 2025. 3. 10. 17:09
오늘 포스팅은,vim 화면 분할vim 다중 파일 편집valgrindmakefilegdb에 대해서 다룬다. 1. vim 화면 분할 단축키:new : 위쪽 새로운 창 분할 Ctrl+w+n:sp : split 위쪽 복사 창 분할 Ctrl+w+s:vs : vertical split 왼쪽 복사 창 분할 Ctrl+w+v:q! 또는 :close : 화면 종료커서 위치 이동: Ctrl+w+w화면 분할 시 처음에는 분할된 화면에 커서가 위치함Ctrl+w+j(k,h,l) : 아래, 위, 좌, 우 화면 이동:wq [새로운 파일명] : 다른 이름으로 저장2. vim 여러 파일 열어서 편집하기 사용법: vi file1 file2 file3:ls : 현재 열린 파일 목록 및 번호 이동:n : 다음 파일로 이동:prev, :N :..
-
[42경산] 3기 1차 라피신 회고 - shell 명령어 (2)Linux Shell 2025. 3. 5. 11:43
오늘 포스팅은,man asciiccalias/exporttrfindwcifconfigawksedcat /etc/passwdsortcutpastebcgnome-terminallinux shell 명령어를 다룬다. 1. 터미널상에서 아스키코드를 볼 수 있는 man ascii42경산의 C 라피신은 ASCII(미국 정보 교환 표준 부호)를 봐야 하는 경우가 자주 생긴다.이럴 때, 외부망과 연결이 차단되어 웹 검색이 불가한 리눅스 계열 환경의 시험에서 유용할 게 써먹을 수 있다.C 코드 상에서는 char 형으로 선언된 변수를 문자 그대로 사용해서 연산을 하거나,두 문자의 차이만큼 루프를 돌리는 로직을 자주 사용한다.A: 65Z: 90a: 97z: 122a - A == 32man ascii 2. C 컴파일 명령어 ..
-
[42경산] 3기 1차 라피신 회고 - norminette 문서 핵심 내용 요약Linux Shell 2025. 3. 3. 17:18
42과정의 코드 컨벤션 또는 format 규약인 normiette를 지킬 때,인지하고 있어야 할 꼭 필요한 내용만 요약해 본다. 1. 명명- 구조체 이름: s_- 전역 변수 이름: g_- 변수/함수명: 소문자, 숫자, '_' (Unix Case)- 파일/디렉터리: 소문자, 숫자, '_' (Unix Case)- 들여쓰기는 네 칸 크기의 탭 사용- 줄 너비는 최대 80열 (주석, 탭 공백 수 포함)- 함수는 최대 25줄- for, do ... while, 삼항 연산자 금지- 상수(const) 및 정적(static)이 아닌 전역 변수 선언은 금지- 파일은 컴파일이 가능2. 서식- 들여쓰기는 네 칸 크기의 탭 사용- 각 함수는 함수 자체의 중괄호를 제외하고 최대 25줄- 각 함수는 줄 바꿈으로 구분- 모든 주석..
-
[42경산] 3기 1차 라피신 회고 - shell 명령어 (2)Linux Shell 2025. 3. 3. 16:59
이번 포스팅에서는,findcat -efilepasswdshadowgroupid명령어를 다룬다.1. find 명령어 find [옵션] [경로] [표현식] 복잡한 리눅스 파일 시스템 구조에서 원하는 파일을 가능한 정확히 찾을 수 있도록, find 명령에는 다양한 옵션이 존재합니다. 일반적인 리눅스 명령어와는 조금 다르게, find 명령은 옵션보다 표현식이 더 많이 사용됩니다. 그래서 현재 디렉토리에 있는 파일을 찾기 위해 find 명령을 사용하는 경우는 드물고 (ls 사용), 지정된 디렉토리에 포함된 디렉토리 및 패턴으로 지정된 파일 이름으로 파일을 찾는 경우가 많죠.참고자료find . -name "FILE" # 특정 파일find . -name "STR*" # 특정 문자열로 시작하는 파일find . -na..
-
[Softeer] Lv.2 바이러스 - JavaScript알고리즘/Javascript 문제 2025. 2. 27. 17:33
1. 문제N초 후 P배씩 증가하는 K마리의 바이러스의 수를 구하는 문제 2. 해설매우 큰 수에 대한 반복문과 BigInt 자료형을 알고 있는지 점검하는 문제(일반 원시 자료형으로 계산하면 틀린다.)입력값을 받아 처음부터 BigInt 자료형으로 변환하여 정밀도 손실 없이 정확한 계산을 수행해야 한다.Number 타입을 사용하는 경우 큰 수의 곱셈에서 오버플로우와 정밀도 손실 문제가 발생할 수 있다. 3. 해답const [k, p, n] = require('fs').readFileSync('/dev/stdin', 'utf8').trim().split(' ').map(e => BigInt(e));let tmp = k;for (let i = 0; i 4. 문제 출처https://softeer.ai/practi..
-
[Softeer] Lv.2 연탄의 크기 - JavaScript알고리즘/Javascript 문제 2025. 2. 27. 16:49
1. 문제(Lv.2) 연탄을 사용할 수 있는 집의 최대 수 구하기 2. 해설최대 나눌 수 있는 수 찾기- 2 ~ 100까지의 수로 input 요소들이 나누어지는 검사- input 배열의 요소 radius가 2 ~ 100 사이의 숫자 i로 나누어 떨어지면, count 값을 1 증가- 만약 count > maxCount 이라면, maxCount를 업데이트- 모든 for문에 끝난 이후 결과값 maxCount를 출력 3. 해답const fs = require('fs');const [n, data] = fs.readFileSync('/dev/stdin', 'utf8').trim().split('\n');const input = data.split(' ').map(Number);let maxAvail = 0;for..
-
[42경산] 3기 1차 라피신 회고 - shell 명령어 (1)Linux Shell 2025. 2. 17. 19:16
이번 포스팅에서는,lsssh-keygencatchmodlnfallocategitpatch/difftouch명령어를 복습한다. 1. ls 명령어ls는 'list segments'의 준말ls -l 명령어를 사용하여 디렉토리 내부 요소를 나열할 때 6개월 이내일 경우는 월, 일, 시간만이 표시되고 6개월 이상일 때는 연도가 표시된다.주요옵션 -l 옵션: ' long listing format, 터미널상에 출력은 순서대로 다음과 같은 의미를 가진다. - 허가권(d: 폴더, I: 소프트(심볼릭)링크, b: 블록, c: 문자 특수 파일) - 링크 개수 - UID (User ID, 사용자 고유 식별자) - GID (Group ID, 그룹 고유 식별자) - 용량 - 생성 날짜 및 시..
-
[42경산] 3기 1차 라피신 회고 - 후기일기장 2025. 2. 16. 19:41
경상북도 경산시 대구대학교 경산이노베이션아카데미에서 진행했던,42경산 라피신과정에 대한 회고를 남겨봅니다!공부를 하는데 돈까지 준다고?? 😯바로 등록합니다! 🏃➡️🏃♀️➡️오프라인이긴 하지만, 기숙사 제공이라면 문제 없즤 🔥1. 라피신 신청🚀 라피신 신청은 아래와 같은 단계로 진행돼요. 1) 개인정보 등록 2) 온라인 테스트 3) 참석의사 확인 4) 체크인 미팅 5) 세부 개인 정보 6) 라피신 + 기숙사 신청 ! 아마도 궁금한 부분이 있다면,'온라인 테스트'와 '체크인 미팅'일 텐데요,전공자이든, 비전공자인든 테스트라고 하니 긴장을 할 법한테 너무 걱정하지 마시라!바로 코딩 지식과 실력을 보는 테스트가 아니기 때문이에요. [온라인 테스트]42 교육 과정이 적합한지 알려준다고 하..
-
[회고] 프론트엔드 개발자 이력서 작성과 수정 방향에 대해일기장 2024. 12. 4. 10:52
고민지원하는 회사에 자체 커리어 페이지나 양식이 있지 않고서는 제네럴 하게 작성한 이력서와 포트폴리오를 제출하고 있다. 요즘 관심이 있는 유지보수와 효율적인 코드 작성면에서 배울 점이 많았던 한 회사의 블로그 글을 보고 채용공고에 지원을 했다. 하지만 결과를 서류에서 바로 탈락.해당 채용공고는 신입 개발자가 아닌 3년 차 이상의 주니어 개발자를 채용을 희망하고 있었기 때문에 당연하다고 생각할 수 있다. 하지만 나는 Yess 팀에서 보낸 서류 탈락 사유를 보고 고민에 빠졌다. ... 도메인에 대한 이해와 경험을 바탕으로React와 TypeScript를 통한 웹 클라이언트 개발을 빠르게 수행하실 수 있는 분을 찾고 있습니다. ... 전달해주신 이력서를 바탕으로 스킬과 경험을 검토하였으나,아쉽게도 저희 팀..
-
[회고] 진짜 개발자가 되기 위한 습관을 들여보자일기장 2024. 11. 25. 16:16
수십 년 동안 한 가지 일을 하면서 전문가가 안 되는 비결이 있다면이 타당성과 피드백이 부족한 환경에서 일하는 겁니다.-김창준, 함께 자라기- 이 글귀는 책 함께 자라기를 읽으면서 충격을 받은 내용이라 가져와 봤다.여담으로 나는 요즘 생활에 피드백을 주기 위해서 매일 밤 10시 회고 모임을 가지고 있다.같이 프론트엔드 직군을 준비하는 개발자들이 모여서 고군분두한 하루의 일과를 이야기하고 격려하는 모임이다. 오늘 쓰고자 하는 내용은 독서한 내용에 대한 회고이다. 그리고 추가된 앞으로의 목표이기도 하다. 진짜 개발자가 되는 습관 중 하나는 최신의 공식 문서(Docs)를 보면서 문제를 해결하는 것이라 생각한다.가장 빨리 찾을 수 있는 블로그나 ChatGPT 구현 예시는 게임의 튜토리얼에 불과하다. 진짜 본 게..
-
[Bug Fix] Next.js 14 App Router 버전, useSearchParams 빌드 Error와 SuspenseFront-end 개발 2024. 11. 25. 00:25
프로젝트를 배포하기 위해서 npm run build 명령어를 수행한 결과 빌드 에러가 뙇! ProblemSuspense 경계 없이 useSearchParams를 통해 매개변수를 읽으면 전체 페이지가 클라이언트 측 렌더링으로 선택된다. 왜냐하면 클라이언트 사이드에서 정적 렌더링 동안에 가장 가까운 Suspense boundary에서 렌더링을 하려고 하고, React는 useSearchParams 사용을 발견하면 가장 가까운 Suspense 경계까지 fallback으로 표시하기 위해 렌더링을 일시 중단한다. Suspense 설정이 없으면 타고타고 올라가서 전체 페이지가 클라이언트 측 렌더더링이 된다. 이로 인해 클라이언트 측 JavaScript가 로르될 때까지 페이지가 비어 있을 수 있기 때문에 빌드 에러가..
-
[Bug Fix] Next.js 14 App Router 버전, 동적 경로에서 데이터가 없는 경우 404 페이지로 redirect 시키기Front-end 개발 2024. 11. 23. 21:58
Problem기본적으로 존재하지 않는 경로는 자동으로 app 폴더 밑에 있는 not-found.tsx 파일인 404 페이지로 redirect 된다.그런데 Next.js 14 App Router 버전에서 동적 경로를 사용하는 Catch All Segment를 사용하는 경우 하위의 모든 경로를 포함하기 때문에 라우팅에서 편리 하지만 데이터가 존재하지 않는 페이지도 보여지게 된다. SolutionnotFound 활용하기기존적인 해법으로 직접 코드 상에서 특정 조건에서 notFound 메서드를 호출하면 된다.내 경우에는 데이터 페칭 결과값이 없을 때, 서버 액션에서 에러를 반환하는 것이 아니라 undefined를 반환하도록 하고, 데이터 페칭의 결과가 존재하지 않을 경우 notFound 를 호출하는 코드로 작성..