분류 전체보기
-
[백준] 한국이 그릴울 땐 서버에 접속하지 - JavaScript알고리즘/Javascript 문제 2025. 4. 10. 02:21
오늘은 정규 표현식을 사용해서 문자열에 해당 패턴이 있는지 없는지 검사하는 비교적 쉬운 문제를 풀어본다. 이 문제는 정규표현식을 알고, 관련 생성자 함수와 메서드를 사용할 줄 아는지 물어보는 문제이다. 문제1. 입력파일의 개수 N알파벳 소문자와 별표 한 개로 이루어진 문자열 패턴파일 이름 N개2. 로직: 정규 표현식으로 문자열 치환하여 조건문 분기처리에 활용하기3. 출력: 패턴과 일치하면 "DA", 일치하지 않으면 "NE"크로아티아이어로 "DA" === "YES", "NE" === "NO" 제출 답안문제에서 주어지는 패턴은 ‘a*b’와 같은 일반 문자열로 제공된다. 이는 일반적인 와일드카드 패턴(*)을 포함하고 있다. 하지만 JavaScript의 정규 표현식에서는 ‘*’가 와일드카드가 아니라, 바로 앞의..
-
최대값, 최소값 - JavaScript알고리즘/Javascript 문제 2025. 4. 2. 23:39
오늘은 JS를 사용해서 최대값과 최소값을 구하는 문제를 풀어본다.문제는 프로그래머스의 161990번 바탕화면 정리이다. 문제: 바탕화면 정리1. 입력: 빈칸은 ".", 파일이 있는 칸은 "#"으로 표시한 배열wallpaper = [".#...", "..#..", "...#."] wallpaper[i][j]는 바탕화면에서 (i+1) 행, (j+1) 열에 해당하는 칸의 상태를 의미2. 로직: 드래그 한 거리 | rdx - lux | + | rdy - luy|가장 작은 row의 #은 lux를 결정가장 작은 col의 #은 luy을 결정가장 큰 row의 #은 rdx를 결정 → rdx + 1가장 큰 col의 #은 rdy를 결정 → rdy + 1rdx와 rdy가 1이 더해짐을 아래 그림을 통해 이해해야 한다. 3. ..
-
피보나치 수열 (Fibonacci Sequence) - JavaScript알고리즘/Javascript 문제 2025. 4. 2. 08:11
오늘은 피보나치 수열이 적용된 백준 문제를 풀어본다.백준 문제 14495번에 대한 정리이다. 문제: 피보나치 비스무리한 수입력: 자연수 n로직: n번째 피보나치 비스무리한 수열f(n) = f(n-1) + f(n-3)f(1) = f(2) = f(3) = 11, 1, 1, 2, 3, 4, 6, 9, 13, 19, ...출력: 자연수 result제출한 답안처음에는 재귀함수를 이용해서 풀었는데 시간 초과로 실패했다.// 시간 초과로 실패const input = ( process.platform === 'linux' ? require('fs').readFileSync('/dev/stdin').toString() : `10`).trim();// console.log(inputconst getFibonacci =..
-
소수 (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를 통한 웹 클라이언트 개발을 빠르게 수행하실 수 있는 분을 찾고 있습니다. ... 전달해주신 이력서를 바탕으로 스킬과 경험을 검토하였으나,아쉽게도 저희 팀..