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

전체 글 242

2학년이 끝난 , 2022년 회고

2022년이 곧 끝난다. 이번년도는 정신없이, 눈 깜짝할 사이에 지나간 것 같다. 많은 일이 있었고, 군대에 가기 전과 비교했을 떄(그떄는 정말 형편없이 살았음) 발전한 것은 틀림없지만, 한편으로는 미래에 대한 불안감, 막막함이 정말정말 커졌다. 내가 개발자의 진로를 계속 가는 것이 맞을까 하는 의문감도 든다. 그 이유는 다음과 같다. 난 성적에 맞춰서, 대학교에 입학한 사람이다.(그것도 컴공과) 솔직히 고3떄까지, 내가 뭘 하고 싶은지 잘 몰랐다. 나는 오버워치라는 게임에 실컷 빠져서 산 것을 제외하면, 내가 뭘 좋아하고, 무엇에 관심이 있는지 몰랐다. (지금도 잘 모르겠다) 올해 고등학교 3학년을 끝내고, 내년에 대학교에 입학하는 내 동생을 보면, 어릴때부터 교사가 되고 싶어했다. 동생은, 정말정말 ..

일기 2022.12.26

Find First and Last Position of Element in Sorted Array C++

백준만 풀다가 내년부터는 리트코드를 쭉 풀어보려고 한다.(이유는 Discuss 탭의 다양하고 알찬 정보들 보기) Discuss에서 시간 복잡도나, 다른 사람의 생각을 볼 수 있다는 게 큰 장점인 것 같기도 하다. https://leetcode.com/problems/find-first-and-last-position-of-element-in-sorted-array/?envType=study-plan&id=algorithm-ii Find First and Last Position of Element in Sorted Array - LeetCode Find First and Last Position of Element in Sorted Array - Given an array of integers nums ..

정렬 2022.12.25

백준 5883 C++

https://www.acmicpc.net/problem/5883 5883번: 아이폰 9S 사람 9명이 줄을 서있고 각 사람이 원하는 용량의 크기는 2, 7, 3, 7, 7, 3, 7, 5, 7 이다. 용량 3을 원하는 사람을 줄에서 빼버리면, 줄은 2, 7, 7, 7, 7, 5, 7가 되고, 7을 원하는 사람이 4명이 연속된 구간이 www.acmicpc.net 문제 오늘은 애플의 아이폰 9S가 출시되는 날이다. N(1 ≤ N ≤ 1000)명의 사람들은 새 아이폰을 누구보다 먼저 구매하기 위해서 애플 스토어 앞에 한 줄로 서있다. 아이폰 9S는 구매자가 용량을 마음대로 정할 수 있다. 즉, 지금까지 아이폰은 16/32/64GB와 같이 용량의 크기가 미리 정해져 있었다. 하지만, 9S는 자신이 원하는 용량..

알고리즘 2022.12.22

백준 친구 네트워크 C++

https://www.acmicpc.net/problem/4195 4195번: 친구 네트워크 첫째 줄에 테스트 케이스의 개수가 주어진다. 각 테스트 케이스의 첫째 줄에는 친구 관계의 수 F가 주어지며, 이 값은 100,000을 넘지 않는다. 다음 F개의 줄에는 친구 관계가 생긴 순서대로 주어진 www.acmicpc.net #include #include #include #include #include using namespace std; int t; vector allRelations; map Parent; map Sizes; set allNames; void InputCase(){ cin >> t; } void InputRelations(){ int n; cin >> n; Sizes.clear(); P..

알고리즘 2022.12.21

백준 치킨배달 C++

https://www.acmicpc.net/problem/15686 15686번: 치킨 배달 크기가 N×N인 도시가 있다. 도시는 1×1크기의 칸으로 나누어져 있다. 도시의 각 칸은 빈 칸, 치킨집, 집 중 하나이다. 도시의 칸은 (r, c)와 같은 형태로 나타내고, r행 c열 또는 위에서부터 r번째 칸 www.acmicpc.net N*N의 도시가 있고, 도시의 각 칸이 치킨집,집,빈 공간입니다. (각각 2,1,0) . 이떄 M이 주어졌을 떄, 치킨집 중 최대 M개의 치킨집을 고르고 나머지 치킨 집을 패쇄해야 합니다. C++의 next_permutation이 생각이 났고 ,전체 치킨 집 중 M개 뽑기를 next_permutation으로 구현하였습니다. #include #include #include #i..

알고리즘 2022.12.20

자바스크립트의 비동기 처리 async/await

ECMAScript 2017 (ES8)부터 자바스크립트의 비동기 처리를 도와주는 async/await가 등장하였습니다. promise로도 비동기 처리가 가능한데, 왜 async/await가 등장하였을까요? "Promise도 가독성이 그렇게 좋지 않다" 가 가장 큰 이유입니다. 코드의 가독성은 개발자에게 중요하고, async/await는 개발자에게 읽기 좋은 코드를 만들어줍니다. const makeRequest = () => { getJson().then(data=>{ console.log(data); return 'done'; }) } makeRequest(); const makeRequest = async () => { console.log(await getJson())l return 'done'; }..

자바스크립트 2022.12.20

백준 5639 이진 검색 트리 C++

https://www.acmicpc.net/problem/5639 5639번: 이진 검색 트리 트리를 전위 순회한 결과가 주어진다. 노드에 들어있는 키의 값은 106보다 작은 양의 정수이다. 모든 값은 한 줄에 하나씩 주어지며, 노드의 수는 10,000개 이하이다. 같은 키를 가지는 노드는 없다 www.acmicpc.net 이진 검색 트리는 다음과 같은 세 가지 조건을 만족하는 이진 트리이다. 노드의 왼쪽 서브트리에 있는 모든 노드의 키는 노드의 키보다 작다. 노드의 오른쪽 서브트리에 있는 모든 노드의 키는 노드의 키보다 크다. 왼쪽, 오른쪽 서브트리도 이진 검색 트리이다. 전위 순회 (루트-왼쪽-오른쪽)은 루트를 방문하고, 왼쪽 서브트리, 오른쪽 서브 트리를 순서대로 방문하면서 노드의 키를 출력한다. ..

자료구조 2022.12.18

자바스크립트의 비동기 처리 - 프로미스(Promise)

캡틴판교님의 블로그를 보고 정리한 내용입니다 https://joshua1988.github.io/web-development/javascript/promise-for-beginners/ 자바스크립트 Promise 쉽게 이해하기 (중급) 자바스크립트 입문자를 위한 Promise 설명. 쉽게 알아보는 자바스크립트 Promise 개념, 사용법, 예제 코드. 예제로 알아보는 then(), catch() 활용법 joshua1988.github.io 먼저 자바스크립트의 비동기 처리란 "특정 코드의 실행이 완료될때까지 기다리지 않고 다음 작업을 실행하는 것" 입니다. 프로미스(Promise)는 자바스크립트의 비동기 처리를 위해 사용되는 객체입니다. (ES6) Promise란 ? "Promise란 코드에서 바로 값을 ..

자바스크립트 2022.12.18

백준 22856 트리순회 C++

문제 노드가 N$N$개인 이진 트리가 있다. 트리를 중위 순회와 유사하게 순회하려고 한다. 이를 유사 중위 순회라고 하자. 순회의 시작은 트리의 루트이고 순회의 끝은 중위 순회할 때 마지막 노드이다. 이때 루트 노드는 항상 1번 노드이다. 유사 중위 순회는 루트 노드에서 시작하며, 다음과 같이 진행된다. 현재 위치한 노드의 왼쪽 자식 노드가 존재하고 아직 방문하지 않았다면, 왼쪽 자식 노드로 이동한다. 그렇지 않고 현재 위치한 노드의 오른쪽 자식 노드가 존재하고 아직 방문하지 않았다면, 오른쪽 자식 노드로 이동한다. 그렇지 않고 현재 노드가 유사 중위 순회의 끝이라면, 유사 중위 순회를 종료한다. 그렇지 않고 부모 노드가 존재한다면, 부모 노드로 이동한다. 유사 중위 순회를 종료할 때까지 1 ~ 4를 반..

알고리즘 2022.12.15

프로그래머스 할인행사 - JS

문제 설명 XYZ 마트는 일정한 금액을 지불하면 10일 동안 회원 자격을 부여합니다. XYZ 마트에서는 회원을 대상으로 매일 한 가지 제품을 할인하는 행사를 합니다. 할인하는 제품은 하루에 하나씩만 구매할 수 있습니다. 알뜰한 정현이는 자신이 원하는 제품과 수량이 할인하는 날짜와 10일 연속으로 일치할 경우에 맞춰서 회원가입을 하려 합니다. 예를 들어, 정현이가 원하는 제품이 바나나 3개, 사과 2개, 쌀 2개, 돼지고기 2개, 냄비 1개이며, XYZ 마트에서 15일간 회원을 대상으로 할인하는 제품이 날짜 순서대로 치킨, 사과, 사과, 바나나, 쌀, 사과, 돼지고기, 바나나, 돼지고기, 쌀, 냄비, 바나나, 사과, 바나나인 경우에 대해 알아봅시다. 첫째 날부터 열흘 간에는 냄비가 할인하지 않기 때문에 첫..

알고리즘 2022.12.10