분류 전체보기 185

[CS 면접 대비 공부] 운영체제

운영체제 운영체제란 운영체제는 사용자에게 편리한 인터페이스 환경을 제공하고 컴퓨터 시스템의 자원을 효율적으로 관리하는 소프트웨어입니다. 운영체제의 구성 운영체제는 인터페이스(GUI)와 시스템 호출(System Call), 커널(Kernel)과 드라이버(Driver)로 구성됩니다. 이 중 사용자와 응용 프로그램에 인접하여 커널에 명령을 전달하고 실행 결과를 사용자와 응용 프로그램에 돌려주는 인터페이스와 운영체제의 핵심 기능을 모아놓은 커널로 구분됩니다. 운영체제의 역할과 목적 효율적인 자원 관리 안정적인 자원 보호 확장성 높은 하드웨어 인터페이스 제공 편리한 사용자 인터페이스 제공 커널과 인터페이스 커널(kernel)은 운영체제의 핵심 기능을 모아놓은 것이며, 인터페이스(interface)는 사용자와 응용..

[level 2] 주차 요금 계산

문제 https://school.programmers.co.kr/learn/courses/30/lessons/92341 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 사용 언어 Python3 풀이 과정 모각코 문제였는데 오늘은 참가하지 못해 나는 밤에 따로 풀었다. 시간 계산 때문에 예상한 시간을 살짝 넘겨서 풀었는데 점수를 1점밖에 안줘서 당황했다..?! 이유는 예상하긴 했지만 시간 복잡도가 극악이었다..! 지금까지 내 힘으로 푼 것중에 제일 별로라고 할 수 있을 정도. 아예 못풀었음 못풀었지 이건.... 한 번에 통과한 게 신기하네. 시간 날 때 코드..

JavaScript 코딩 테스트 정리

[01 내장 함수] (1) 입출력 입력 : readline과 fs 두 가지 방법이 있지만 fs가 더 빠름, 프로그래머스는 입력 방식을 신경 쓸 필요 없긴 함 const fs = require('fs'); let input = fs.readFileSync('/dev/stdin').toString().split('\n'); console.log(input); 출력 console.log() (2) 문자열 1. 자르기 출처 : https://codechacha.com/ko/javascript-how-to-substring/ split : 구분자로 문자열 자르기 let str = 'Hello, World, Javascript'; console.log(str.split(',')); // [ 'Hello', ' Wo..

[PWA] Push Notification 외전2. chrome에서의 subscription token 만료 문제 (feat. nodemailer)

[01 문제 상황] 기능을 구현해놓고 구체화하며 테스트를 진행하는데, 계속해서 토큰이 만료되어 만료된 토큰에 푸시 알림을 보내려 하면 서버가 죽는 현상이 일어났다. 서버가 죽는건 에러 처리를 하지 않았기 때문이므로 try catch문으로 해결해줬는데, 토큰이 만료되는 문제는 내 문제가 아니기 때문에 해결 방법을 몰랐다. 구글링 결과, 만료시 pushsubscriptionchange 이벤트리스너로 service worker에게 새로운 구독 정보로 갱신해달라고 하면 되는데 중요한 점은 chorome은 해당 이벤트를 지원하지 않는다는 것이었따..?! firefox만 지원하는건 너무하잖아 ㅠㅠ 따라서 이런 글들을 읽으며... 나는 어떻게 처리할지 고민했다. 실서비스에서 PWA를 사용하면 무조건 이런 문제가 있을..

[취준 일기] 첫 코딩테스트 통과

🎉 첫 코딩테스트 통과 아니 세상에... 나는 아직 한참 뒤에나 가능할 줄 알았던 코딩테스트 통과라는 일이 나에게 벌어졌다! 그것도 내가 오랜만에 흥미가 생겼던 기업인 LG U+에서...!! 나름 3일 전부터 프로그래머스 문제를 줄줄이 푼 게 도움이 되었는지... 아님 인적성을 잘 본 건지.. 알 수 없지만 기쁘다. 확인하러 들어가면서도 떨어질거야 떨어질거야 너무 쉬웠는데 나는 2.3솔/3문제 이었으니까라고 실망하지 말자 하면서 열었는데.. 켜자마자 공지가 너무 짧아서 진짜 탈락인줄 알았다 ㅋㅋㅋ 근데 합격이라니!! 세상 사람들 내가~ 코테 합격이라니~~ 다른 사람들 반응 보면 3솔 했는데도 떨어졌다는 사람도 있고 2.5솔도 떨어지신 분 계셔서 아마 인적성 영향도 있는 것 같다. 눈 빠지게 문제 읽고 집..

자유/주절주절 2022.07.30

[취준 일기] 한 발짝 가까워지기

취준 일기라고 하니까 좀 어색하긴 한데..! 그래도 기록으로 남겨두면 나중에 추억일 것 같아 적어본다. ✨ 취업 분야 변경 2021 하반기, 그러니까 마지막 학기를 다니며 나는 정보보안 분야로 취업을 시도했다. 내 전공이었고 4년간 대부분의 활동과 프로젝트는 보안 분야였기 때문에 당연한(?) 루트같지만 사실 나는 중간중간 개발로의 탈출을 몇 번 시도했다. 예를 들면 SW 마에스트로에 지원해본다던가 개발 연합동아리 솝트에 지원해본다던가 교환학생 수강신청을 개발 과목으로만 채운다던가(한 과목당 6학점으로 코딩만 주구장창 하는 호주식 수업이었음) 그랬는데 신기하게도 다른 대외활동은 잘만 붙더니 개발 관련 대외활동은 하나도 붙지 못했다 ^_^ 교환학생은 코로나로 연기되다가 결국 취소가 됐다! 지금 생각해보면 합..

자유/주절주절 2022.07.30

[골드 V] 5639번. 이진 검색 트리

문제 https://www.acmicpc.net/problem/5639 5639번: 이진 검색 트리 트리를 전위 순회한 결과가 주어진다. 노드에 들어있는 키의 값은 106보다 작은 양의 정수이다. 모든 값은 한 줄에 하나씩 주어지며, 노드의 수는 10,000개 이하이다. 같은 키를 가지는 노드는 없다 www.acmicpc.net 사용 언어 Python3 풀이 과정 이거야말로 저번에 풀었던 4256번. 트리 문제와 비슷하다고 생각했는데 한 번에 풀지 못했다... 그 문제는 그냥 트리이고 이건 이진 트리임을 이용한 문제인데 이진 트리의 개념은 알고 있었지만 탐색을 어떻게 해야할지...막막쓰.. 그래서 다른 블로그의 도움을 받아😥 맞았습니다!! 처음 제출 후 while True: 를 while count en..

[실버 I] 1991번. 트리 순회

문제 https://www.acmicpc.net/problem/1991 1991번: 트리 순회 첫째 줄에는 이진 트리의 노드의 개수 N(1 ≤ N ≤ 26)이 주어진다. 둘째 줄부터 N개의 줄에 걸쳐 각 노드와 그의 왼쪽 자식 노드, 오른쪽 자식 노드가 주어진다. 노드의 이름은 A부터 차례대로 알파 www.acmicpc.net 사용 언어 Python3 풀이 과정 사실 이 문제는 4256번. 트리 문제를 풀기 전에 풀었어야 순서적으로 맞았을 것 같다. 그 때 더 어려운 문제를 풀면서 확실히 기억했던 건 전위순회, 중위순회, 후위순회의 구현시 차이점은 print() 하는 순서의 차이였다는 것..? 그래서 딕셔너리를 이용해 혼자 풀어보다가, 마음에 안들어서 구글링을 한 뒤 class를 이용한 풀이로 변경했다...

[PWA] Push Notification 외전1. query string으로 사용자 인증값 전달하기 (feat. AES 암호화)

[01 들어가기에 앞서 ] (1) query string이란? 사용자가 입력 데이터를 전달하는 방법 중의 하나로서 URL 주소에 미리 협의된 데이터를 파라미터를 통해 넘기는 것이다. 여기서 사용자 입력이란 사용자가 검색한 키워드가 될 수도 있고 임의로 설정한 필터 조건이 될 수도 있다. 사용하는 방법은 URL과 조건문 사이의 ‘?’ 구분자를 두고 필요한 파라미터 값을 적는다. 그리고 파라미터가 여러개일 경우 ‘&’ 를 붙여 여러개의 파라미터를 넘길 수 있다. (2) 사용하게 된 배경 push actions 클릭시 넘어가는 페이지(오늘의 체크리스트 작성 페이지)와 QR code 연결 페이지(모바일 구독 페이지) 이동 후에 별도의 로그인 없이 사용자 인증 후 요청을 할 수 있게 하고 싶었다. 그런데 REST..

[level 1] 비밀지도

문제 https://school.programmers.co.kr/learn/courses/30/lessons/17681 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 사용 언어 Python3 풀이 과정 삼성 SW 아카데미에서 (거의 유일하게 학습한) 비트 연산 문제였다! or 연산을 하면 되겠다는건 알았는데 파이썬에서 2진수 다루는 방법을 잘 몰라 검색해서 해결했다. 그리고 아래 첫 번째 제출 코드에서 겹치는 부분이 마음에 들지 않아 한 번만 쓰도록 if문을 변경했다. def solution(n, arr1, arr2): answer = [] for i i..

[PWA] Push Notification 안드로이드 QR 코드로 구독하기

지난 PWA 시리즈에 이어서 작성한 내용입니다. 한동안 코딩 테스트 준비로 프로그래머스 문제에 집중하다가 다시 작성!! [01 QR code란? ] QR 코드(Quick Response code)는 컴퓨터가 만든 흑백 격자무늬 패턴 코드로, 정보를 나타내는 매트릭스 형식의 이차원 코드이다. 기존의 바코드는 기본적으로 가로 배열에 최대 20여 자의 숫자 정보만 넣을 수 있는 1차원적 구성이지만, QR코드 원리는 가로, 세로를 활용하는 2차원적 구성이다. 숫자 : 최대 7,079 문자 : 최대 4,296 한자 : 최대 1,817 QR 코드의 자세한 작동 구조가 궁금하다면 아래 참고에서 확인한다. 참고 : https://codingcoding.tistory.com/95 [02 QR code 생성 ] (1) 외..

[level 3] N으로 표현

문제 https://school.programmers.co.kr/learn/courses/30/lessons/42895?language=python3# 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 사용 언어 Python3 풀이 과정 DP문제... 점화식 너무 어려워...흐아앙 처음에 생각한 방식은 그냥 엉망진창이었고 질문하기에서 이 글의 도움을 받아 힌트를 얻었다... 그러고도 한참을 생각하다가 겨우 간신히 풀었는데 2개가 실패! 이게 틀린 코드인데 다시 보니 return이 N이 3일 때부터 가능해서 1부터 가능하도록 range 범위를 바꿔줬다. 1, ..

[level 3] 네트워크

문제 https://school.programmers.co.kr/learn/courses/30/lessons/43162?language=python3 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 사용 언어 Python3 풀이 과정 앗 이 문제는 첫 번째 제출에서 3개의 테스트 케이스가 실패였다! 이게 틀린 코드인데 q.popleft() 해서 얻은 num에 대한 방문처리가 빠진 것 같았다. 그런데 코드를 다시 보니 방문처리 부분이 불필요하게 겹쳐서 num에 대한 방문처리만 남기고 수정했더니 통과했다. from collections import deque ..

[level 2] 게임 맵 최단거리

문제 https://school.programmers.co.kr/learn/courses/30/lessons/1844 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 사용 언어 Python3 풀이 과정 bfs로 풀었는데 간단한 편이라서 한 번에 통과! 추가로 효율성 점수가 있었는데 이게 높은건지 낮은건지 구분이 안가서 아래에서 다른 사람들의 코드도 돌려보았다. 실수할 뻔 한 건 처음에 무조건 N * N의 정사각형으로 입력이 주어지는 줄 알았는데 조건을 다시 읽어보니 N * M으로도 제시가 될 수 있지만 예시가 정사각형 모양인 것 뿐이었다..ㅎㅎ 항상 입출력..

[level 2] 오픈채팅방

문제 https://school.programmers.co.kr/learn/courses/30/lessons/42888?language=python3 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 사용 언어 Python3 풀이 과정 이 문제 역시 쉬운 구현 문제여서 한 번에 통과! 이게 처음 내 코드인데 다른 사람 풀이를 보다 보니 느낀점이 있었다. split( ) 했을 때 바로 변수에 할당하려고 하면 개수가 달라서 나처럼 len( ) 으로 한 번 더 조건문을 붙여줘야 하는데 개수는 다르지만 op, user_id 순서까진 같아서 굳이 조건문으로 나누지 않..

[level 1] 신고 결과 받기

문제 https://school.programmers.co.kr/learn/courses/30/lessons/92334 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 사용 언어 Python3 풀이 과정 좋은 풀이 방법이 생각나지 않아 defaultdict로 풀었는데 한 번에 맞긴 했다..! 일단 내 풀이에서는 개선할 부분이 보이지 않아 풀이를 그대로 올리는데 다른 사람 풀이를 보며 공부했다. 간단한 문제라서 그런지 시간도 뭐 눈에 띄게 느린 정돈 아닌 것 같다. 제출 답안 from collections import defaultdict def soluti..

[골드 V] 7569번. 토마토

문제 https://www.acmicpc.net/problem/7569 7569번: 토마토 첫 줄에는 상자의 크기를 나타내는 두 정수 M,N과 쌓아올려지는 상자의 수를 나타내는 H가 주어진다. M은 상자의 가로 칸의 수, N은 상자의 세로 칸의 수를 나타낸다. 단, 2 ≤ M ≤ 100, 2 ≤ N ≤ 100, www.acmicpc.net 사용 언어 Python3 풀이 과정 이 문제는 2차원 배열로 푸는 버전도 있는 것 같지만 우리는 바로 3차원 배열로 푸는 버전이 숙제였다. 3차원 배열을 선언하는 것도, 거기에 vector값을 이용해 bfs를 사용하는 것도 처음이어서 검색을 좀 했다. list comprehension이 참 깔끔한 파이썬! 처음에는 아래처럼 모든 토마토가 저장될 때부터 익어있을 때 0을..