728x90

전체 글 108

[자료구조] 진법변환, 비트연산

진법 변환은 10진법, 2진법 등의 수를 다른 진법의 수를 바꾸는 것을 의미한다. 우리는 일반적으로 10진법을 사용하고, 컴퓨터는 0과 1로 이루어진 2진법을 이용한다. 이것을 변환하는 것도 진법변환이라고 부른다. 기본적으로 진법을 변환할 때는 나눗셈연산과 곱셈연산을 이용한다. 예를 들어 2진수인 111을 10진수로 변환할 때는 1*2^2 + 1*2^1 + 1*2^0 = 7 이 되고, 반대로 10진수인 7을 2진수로 변환할 때는 7//2, (7/2)//2, 7/2/2 => 111 이 된다. 파이썬 기준으로 n진수에서 10진수로 변환할때는 int()를 사용하면 된다. int(string, 진법) 이런 형식으로 사용하면 된다. string에는 변환하고자 하는 n진수 수를 문자열 형태로 넣으면 되고, 그 뒤에..

알고리즘 2022.03.03

8주차 정리(2/21~2/25)

벌써 부트 캠프 시작후 2달이 지났다. 사실 이번 주는 이미 파파고 클론 코딩과 미니 프로젝트에 관해서 업로드 했기 때문에 크게 업로드 할 것은 없지만, 다시 어떤 것을 배웠는지 되돌아 보기 위해 정리를 하려고 한다. 파파고 클론 코딩을 하면서 외부 API를 받아오는 방법에 대한 학습, 잊고 있던 Node.js 사용법등을 떠올릴 수 있었다. 예전 프로젝트 때 한 번 하고 아마 사진 전송이 뜻 대로 되지 않아 접고 Firebase로 돌린 다음에 프로젝트 마무리 지었던 기억 때문에 Node.js에 대한 기억이 별로 좋지 못했는데, 그래도 이번엔 뭐라도 성공해봐서 다시 긍정적인 쪽으로 인상이 변화하고 있다. 파파고 클론 코딩에 대한 포스팅은 아래 링크를 참고! https://paabaep.tistory.com..

[자료구조] DFS(깊이 우선 탐색), BFS(너비 우선 탐색)

탐색에 대해 이해하려면 트리 구조를 먼저 살펴보는 것이 좋다. 트리(tree)는 나무가 가지치는 것처럼 생긴 "그래프"의 일종이다. 방향성(보통 위에서 아래)이 있는 비순환 그래프라고도 말하며, 루트 노드(최상위 노드), 부모-자식간의 노드 등이 존재한다. 여기서 말하는 노드는 정점이라고도 말하는데 특정 장소를 생각하면 된다. 이런 노드를 연결하는 것을 엣지(간선)이라 부르는데, 장소를 잇는 도로라고 생각하면 쉽다. 보통 트리는 다음과 같이 생긴 것을 의미한다. 이런 트리도 여러가지 조건 등을 붙이면서 특이한 종류의 트리를 만들 수 있는데, 우선 이 포스트에서는 그 것이 중점이 아니므로 깊게 다루지는 않을 것이다. (언젠가 다른 게시물에서 다룰 예정이다.) DFS(Depth First Search - 깊..

알고리즘 2022.03.02

[Web] CORS(Cross-Origin Resource Sharing, 교차 출처 리소스 공유)

사실 이 개념은 프론트엔드, 백엔드 어느 한 쪽에 국한 되는 개념은 아니다. 내가 이 개념을 프론트엔드 공부할 때 접한 개념이었어서 FE카테고리에 넣은 것이지, 이 개념이 FE에 한정되는 개념이 아님을 밝히고 시작하려 한다. 우선 CORS의 정의는 다음과 같다. 추가 HTTP 헤더를 이용하여, 한 출처에서 실행 중인 웹 애플리케이션이 다른 출처의 선택한 자원에 접근할 수 있는 권한을 부여하도록 브라우저에 알려주는 체제 이 정의만 보면 무슨 이야기인지 잘 와닿지 않을 것이다. (나도 처음 접할 때 무슨 말인지 한참을 들여다봤다.) 위의 말을 다른 표현으로 쓰자면, 브라우저 관점에서 origin이 다른 서버를 바로 호출 할 수 없다는 이야기이다. 예를 들면, 내가 "https://aaaaaaa.com"라는 ..

개인공부/FE 2022.03.02

[백준 실버3] 2606 바이러스.py

https://www.acmicpc.net/problem/2606 2606번: 바이러스 첫째 줄에는 컴퓨터의 수가 주어진다. 컴퓨터의 수는 100 이하이고 각 컴퓨터에는 1번 부터 차례대로 번호가 매겨진다. 둘째 줄에는 네트워크 상에서 직접 연결되어 있는 컴퓨터 쌍의 수가 주어 www.acmicpc.net 컴퓨터의 연결정보와 컴퓨터가 몇 개인지에 대한 정보가 주어진다. 이때 1번 컴퓨터가 웜 바이러스에 감염되었다고 하자. 바이러스가 걸린 컴퓨터와 연결된 모든 컴퓨터가 웜 바이러스에 감염된다고 할때, 웜 바이러스에 걸린 컴퓨터가 총 몇 대인지를 반환하면 되는 문제이다. 입출력의 예는 다음과 같다. 예제 입력 1 7 6 1 2 2 3 1 5 5 2 5 6 4 7 예제 출력 1 4 DFS 또는 BFS로 해결하..

알고리즘 2022.02.28

[미니프로젝트3] Adopt Cat (고양이 입양 홍보 웹사이트)

3번째로 진행한 미니 프로젝트 이다. 프론트로 배운 HTML, CSS, JavaScript를 이용하려고 시작한 프로젝트로, 우리팀은 이번 프로젝트 주제를 다음과 같이 잡았다. 구조된 혹은 임시 보호하는 고양이의 입양을 독려하기 위한 홍보 페이지 프로젝트에 대한 상세 설명은 다음과 같다. 서비스 소개 : 고양이를 입양할 집사들을 찾는 웹사이트 프로젝트 기간 : 22/02/23 ~ 22/02/24 기술 스택 : HTML, CSS, JavaScript => 웹페이지를 만들기 위한 기본 툴로 사용 Node.js => get, post 기능을 이용하기 위해 간단히 쓰려고 만든 서버 화면 별 기능 : 📢메인 - 입양 홍보하는 고양이의 간단한 소개글, 클릭시 상세페이지로 이동 🧾상세화면 - 고양이 상세정보, 입양 신..

[프로그래머스 lv 2] 타겟 넘버.py

https://programmers.co.kr/learn/courses/30/lessons/43165 코딩테스트 연습 - 타겟 넘버 n개의 음이 아닌 정수들이 있습니다. 이 정수들을 순서를 바꾸지 않고 적절히 더하거나 빼서 타겟 넘버를 만들려고 합니다. 예를 들어 [1, 1, 1, 1, 1]로 숫자 3을 만들려면 다음 다섯 방법을 쓸 수 programmers.co.kr 음이 아닌 정수들이 배열로 나오고, 이 정수 들의 순서를 바꾸지 않고 적절히 더하거나 빼서 타겟 넘버를 만들 수 있는 방법의 수를 구하면된다. 입출력의 예는 다음과 같다. numbers target return [1, 1, 1, 1, 1] 3 5 [4, 1, 2, 1] 4 2 우선 계속 더하고 빼면서 타겟과 같아지는 지 비교할 변수를 선언..

알고리즘 2022.02.24

[Node.js] 네이버 파파고 API Node.js에서 사용하기

네이버 파파고 클론 코딩을 하면서 이 코딩에 핵심인 파파고 API를 쓰는 방법을 정리해보려한다. 우선 Node.js 개발환경이 구성되었다는 가정 하에 진행한다. 제일 먼저 할 일은 네이버 개발자 센터에서 내 애플리케이션을 등록하고, API 키를 발급받는 것이다. https://developers.naver.com/main/ NAVER Developers 네이버 오픈 API들을 활용해 개발자들이 다양한 애플리케이션을 개발할 수 있도록 API 가이드와 SDK를 제공합니다. 제공중인 오픈 API에는 네이버 로그인, 검색, 단축URL, 캡차를 비롯 기계번역, 음 developers.naver.com 이 사이트에서 내 애플리케이션을 등록하고, 사용할 API를 지정하는 등 과정을 모두 마치면 하단의 사진 처럼 ID..

개인공부/BE 2022.02.23

[백준 실버2] 1260 DFS와 BFS.py

https://www.acmicpc.net/problem/1260 1260번: DFS와 BFS 첫째 줄에 정점의 개수 N(1 ≤ N ≤ 1,000), 간선의 개수 M(1 ≤ M ≤ 10,000), 탐색을 시작할 정점의 번호 V가 주어진다. 다음 M개의 줄에는 간선이 연결하는 두 정점의 번호가 주어진다. 어떤 두 정점 사 www.acmicpc.net 그래프를 DFS로 탐색한 결과와 BFS로 탐색한 결과를 출력하는 문제이다. 단, 방문할 수 있는 정점이 여러 개인 경우에는 정점 번호가 작은 것을 먼저 방문하고, 더 이상 방문할 수 있는 점이 없는 경우 종료한다. 입출력의 예는 다음과 같다. 예제 입력 1 4 5 1 1 2 1 3 1 4 2 4 3 4 예제 출력 1 1 2 4 3 1 2 3 4 예제 입력 2 ..

알고리즘 2022.02.22

7주차 정리(2/14~2/18)

이번 주는 새로운 강사님과 프론트 엔드를 학습했다. HTML, CSS, JS를 학습했다. 모든 내용을 다 정리하기 보다는 내가 잘 몰랐던 것, 기억에 남았던 것들 위주로 정리하고자 한다. 우선 VScode를 이용해서 개발중인데, Go Live(Live Server)를 이용하면 코드 반영사항을 바로 바로 체크하면서 개발을 할 수 있어서 좋았다. Live Server는 마켓플레이스에서 확장프로그램으로 설치 후 사용하는데, 사용법이 직관적이고 쉬워서 좋았다. VScode로 개발하면서 단축키 사용이 늘었는데, 이 라이브서버 구동시에도 유용한 단축키가 있었다. 지금 라이브 서버로 열고자 하는 파일에서 alt + l, O를 누르면 바로 크롬창(디폴트 인터넷 창)이 뜨면서 현재 개발 중인 화면이 나온다. 확실히 단축..

728x90
반응형