하루하루 꾸준히, 인생은 되는대로

전체 글 242

프로그래머스 튜플 C++

https://school.programmers.co.kr/learn/courses/30/lessons/64065?language=cpp 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 몇번의 시행착오를 겪었다. 처음에 내가 든 생각은 다음과 같다. "{{2},{2,1},{2,1,3},{2,1,3,4}}" 1 먼저 문자열로 입력이 들어오는데, 괄호를 제외한 순수한 문자열을 얻는다. (위의 경우 "2","21","213","2134"순으로 괄호를 제외해서 문자열을 얻는다) 2 문자열을 크기 순으로 정렬한다. 3 크기 순으로 정렬된 문자열이 있다면, 다음 크기..

알고리즘 2023.01.29

간단한 뉴스 뷰어 만들기

리액트를 다루는 기술 14장을 참고해서 만들었고, 타입스크립트도 적용해보았다. 먼저 API KEY가 필요하다. https://newsapi.org/account Login - News API newsapi.org API KEY를 발급받으면 이메일로, KEY가 올 것이다. 리액트에서 API KEY를 환경변수로 관리 할 수 있다. 프로젝트 최상단에 .env파일을 만들고, .gitingnore파일에 .env를 추가해서 깃에 올라가는 것을 막아준다. 그리고 API KEY를 적어주면 된다. 이떄, API KEY는 REACT_APP_으로 시작해야 한다 사용할 떄는 jsx,js에서 process.env.REACT_APP_이름 변수명을 넣어서 사용해준다. src폴더 구조는 다음과 같고, constants.ts에서는 받..

리액트 2023.01.19

프로그래머스 뉴스 클러스터링 C++

https://school.programmers.co.kr/learn/courses/30/lessons/17677 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 여러 언론사에서 쏟아지는 뉴스, 특히 속보성 뉴스를 보면 비슷비슷한 제목의 기사가 많아 정작 필요한 기사를 찾기가 어렵다. Daum 뉴스의 개발 업무를 맡게 된 신입사원 튜브는 사용자들이 편리하게 다양한 뉴스를 찾아볼 수 있도록 문제점을 개선하는 업무를 맡게 되었다. 개발의 방향을 잡기 위해 튜브는 우선 최근 화제가 되고 있는 "카카오 신입 개발자 공채" 관련 기사를 검색해보았다. 카카오 첫 공채..

알고리즘 2023.01.16

프로그래머스 키패드 누르기 C++

https://school.programmers.co.kr/learn/courses/30/lessons/67256 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 스마트폰 전화 키패드의 각 칸에 다음과 같이 숫자들이 적혀 있습니다. 이 전화 키패드에서 왼손과 오른손의 엄지손가락만을 이용해서 숫자만을 입력하려고 합니다. 맨 처음 왼손 엄지손가락은 * 키패드에 오른손 엄지손가락은 # 키패드 위치에서 시작하며, 엄지손가락을 사용하는 규칙은 다음과 같습니다. 엄지손가락은 상하좌우 4가지 방향으로만 이동할 수 있으며 키패드 이동 한 칸은 거리로 1에 해당..

알고리즘 2023.01.05

백준 숫자고르기 C++

https://www.acmicpc.net/problem/2668 2668번: 숫자고르기 세로 두 줄, 가로로 N개의 칸으로 이루어진 표가 있다. 첫째 줄의 각 칸에는 정수 1, 2, …, N이 차례대로 들어 있고 둘째 줄의 각 칸에는 1이상 N이하인 정수가 들어 있다. 첫째 줄에서 숫자를 적절 www.acmicpc.net 그래프에서 사이클이 발생한다면, 정수를 뽑을 수 있습니다. 만약 n이 3이고, 입력이 {3,1,2}가 주어진다면, 그래프로 연결을 했을떄, 정점1은 사이클이 존재함을 확인할 수 있습니다(아래 그림을 통해 잘 사이클이 발생하는 것을 볼 수 있습니다) DFS에서 사이클을 찾는 방법은 아래의 블로그를 참고하였습니다. https://nicotina04.tistory.com/148 그래프에서 ..

알고리즘 2022.12.31

리액트 연습하기!- todo만들기 (타입스크립트와 함께하는)

먼저 리액트 앱을 타입스크립트와 같이 사용하려면, $ npx create-react-app ts-react-tutorial --typescript 명령어를 사용하면 됩니다. (ts-react-tutorial부분은 앱 이름입니다.) 전체 폴더 구조 스타일링은 styled-components를 사용하였습니다. styled-components는 자바스크립트 파일 안에서 CSS를 사용할 수 있도록 해주는 (CSS-In-JS)라이브러리입니다. styled-components 설치 npm i styled-components 타입스크립트와 함께 사용하려면, 다음의 명령어를 추가로 실행해야 합니다. npm i -D @types/styled-components 🌕Todo의 타입을 지정해보자 할 일 목록(Todo)에는 고..

리액트 2022.12.31

백준 숨바꼭질4 C++

https://www.acmicpc.net/problem/13913 13913번: 숨바꼭질 4 수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 www.acmicpc.net BFS를 했을 떄, 최단 거리를 역추적하는 문제입니다. 먼저 주어진 n과 k를 입력받고, 최단거리 저장 배열 dt를 만들고 큰 값으로 초기화를 해주었습니다. void input(){ cin >> n >> k; for(int i = 0;i MAX || node < 0){ return false; } return true; } 이제 BFS함수를 정의해줍니다. void..

알고리즘 2022.12.27

2차원 배열에서 이분 탐색 사용하기

2차원 배열에서 이분탐색을 적용하고 싶었다. https://leetcode.com/problems/search-a-2d-matrix/?envType=study-plan&id=algorithm-ii Search a 2D Matrix - LeetCode Search a 2D Matrix - Write an efficient algorithm that searches for a value target in an m x n integer matrix matrix. This matrix has the following properties: * Integers in each row are sorted from left to right. * The first integer of each row is greater l..

정렬 2022.12.27

얕은 복사 VS 깊은 복사

얕은 복사 vs 깊은 복사 얕은복사는 객체의 참조값(주소값)을 , 깊은 복사는 객체의 실제값을 복사합니다 원시 값을 복사할 떄, 새로운 메모리 공간을 할당하고, 그 곳에 새 원시 값을 넣고, 식별자가 새로운 메모리 공간을 가르키기 떄문에, 복사를 하고 값을 바꿔도, 기존의 원시값에는 아무런 영향도 가지 않습니다. const a = 1; let b = 2; b = 3; console.log(a); //1 console.log(b); //3 //기존 값 a에 영향을 미치지 않는다. 위의 코드를 그림으로 그려보면 다음과 같은 과정을 겪습니다. 이제 변수 b를 변수 c로 복사해 보겠습니다. let c = b; 위의 코드가 실행되면 다음과 같이 3을 저장할 새 메모리 공간을 만들고, 원시 값을 저장하고 c가 그 ..

자바스크립트 2022.12.26