반응형

전체 글 121

[자바스크립트 떠먹여 주는 남자] 스코프 (Scope)

안녕하세요! 최근 며칠 동안 알고리즘과 영어 공부에 관련된 포스트를 집중적으로 올리느라 개발과 관련 된 포스트는 하나도 올리지 않았네요. 하지만 책으로 계속 공부를 하고 있었기 때문에 마냥 쉬고 있었던 것만은 아닙니다. 이번 포스트에서는 자바스크립트의 스코프 개념에 대하여 알아볼 텐데요. 중요한 개념이므로 같이 열심히 공부했으면 좋겠습니다! 그럼 스코프 (Scope) 먼저, 스코프의 정의에 대하여 알아보도록 하겠습니다. 스코프는 '범위' 라는 뜻을 가지고 있는 영어 단어이며 개발에도 많이 사용되는 용어입니다. 한가지 예를 들자면, 만약 A, B, C 업무를 이번 스프린트에서 끝내기로 했는데 나중에 D 가 추가 되었다고 가정합시다. 하지만 어떠한 사정 (인력 혹은 시간 부족) 으로 인하여 D 업무를 처리할..

[알고리즘 떠먹여 주는 남자] 백준 2231 - 분해합 for Node.js

안녕하세요! 오늘의 알고리즘은 백준 온라인 저지의 브루트포스 카테고리 2번째 문제 분해합입니다. 저는 알고리즘 문제를 해석할 때 항상 애를 먹는데요, 왜 그런지 모르겠습니다. 몇 번을 읽어도 헷갈리고.. 그래서 실수를 자주 하고는 하는데요, 어떻게 개선해 나가야 할 지 아직 감이 잘 잡히지 않습니다.. 일단은 무식하게 노력해 보는 수 밖에 없겠네요, 마치 브루트포스처럼. https://www.acmicpc.net/problem/2231 2231번: 분해합 어떤 자연수 N이 있을 때, 그 자연수 N의 분해합은 N과 N을 이루는 각 자리수의 합을 의미한다. 어떤 자연수 M의 분해합이 N인 경우, M을 N의 생성자라 한다. 예를 들어, 245의 분해합은 256(=245+2+4+5)이 www.acmicpc.ne..

Studying/Algorithms 2022.04.06

[알고리즘 떠먹여 주는 남자] 백준 2798 - 블랙잭 for Node.js

안녕하세요! 두둥! 오늘의 마지막 알고리즘, 바로 블랙잭입니다. 이 문제는 백준 온라인 저지의 브루트포스 카테고리 안에 있는 문제입니다. 브루트포스 알고리즘에 대하여 아주 간단하게 설명을 드리자면, 무식하게 다 해보는 것입니다. 모든 경우의 수를 다 찾아보고 요구 조건에 맞는 결과값을 도출합니다. 따라서 시간 복잡도가 매우 높기 때문에 비싼 (비효율적인) 알고리즘이라고 할 수 있습니다. 하지만 브루트포스 알고리즘을 사용해서 문제를 해결해야 할 경우가 분명히 있으니 우리가 배우고 공부하는 것이겠죠..? 그럼 문제 풀이로 들어가 보겠습니다. https://acmicpc.net/problem/2798 2798번: 블랙잭 첫째 줄에 카드의 개수 N(3 ≤ N ≤ 100)과 M(10 ≤ M ≤ 300,000)이 ..

Studying/Algorithms 2022.04.05

[알고리즘 떠먹여 주는 남자 - 번외편] 백준 알고리즘 풀이용 로컬 테스트 환경 구축

안녕하세요! 알고리즘 문제 풀이를 하다가 문득 로컬 개발 환경에서 제가 사용하는 코드 디버깅 방법을 공유하면 좋겠다 싶어서 이렇게 포스트를 작성하게 되었습니다. 저같은 알린이들에게는 제출 전 테스트 + 코딩 용으로 꽤 유용한 방법이 되지 않을까 싶은데요.. 물론 가끔씩 로컬 환경에서는 예상되는 결과값이 출력되는데도 막상 제출하고 나면 틀렸다고 나오는 경우도 있습니다. 그건 논외로 제쳐두고 이번에는 제가 로컬 개발 환경을 어떻게 설정해 놓았는지 그 방법을 공유하려고 합니다. 참고로 저는 VSCode (Visual Studio Code) 를 메인 IDE 로 사용하고 있습니다. 그 외에 Sublime Text 도 사용하지만 주로 제가 공부 한 내용들을 작성하는 노트 용도나 간단한 코드 열람용으로 사용하고 있습..

Studying/Algorithms 2022.04.05

[알고리즘 떠먹여 주는 남자] 백준 1110 - 더하기 사이클 for Node.js

안녕하세요, 최근 알고리즘 풀이 포스팅을 많이 올리는데, 책 읽으면서 공부하다가 막상 문제 풀이를 위해 코딩을 조금씩이라도 하면서 생각 하니까 시간은 좀 더 걸리고 어렵더라도 재미는 더 있는 것 같아요. 균형을 맞추는 게 중요한데.. 오늘의 알고리즘 포스팅은 이거 하나로 만족해야 할 것 같습니다. https://acmicpc.net/problem/1110 1110번: 더하기 사이클 0보다 크거나 같고, 99보다 작거나 같은 정수가 주어질 때 다음과 같은 연산을 할 수 있다. 먼저 주어진 수가 10보다 작다면 앞에 0을 붙여 두 자리 수로 만들고, 각 자리의 숫자를 더한다. 그 다음, www.acmicpc.net 문제 0보다 크거나 같고, 99보다 작거나 같은 정수가 주어질 때 다음과 같은 연산을 할 수 ..

Studying/Algorithms 2022.04.05

[알고리즘 떠먹여 주는 남자] 백준 15552 - 빠른 A + B for Node.js

https://www.acmicpc.net/problem/15552 15552번: 빠른 A+B 첫 줄에 테스트케이스의 개수 T가 주어진다. T는 최대 1,000,000이다. 다음 T줄에는 각각 두 정수 A와 B가 주어진다. A와 B는 1 이상, 1,000 이하이다. www.acmicpc.net 문제 본격적으로 for문 문제를 풀기 전에 주의해야 할 점이 있다. 입출력 방식이 느리면 여러 줄을 입력받거나 출력할 때 시간초과가 날 수 있다는 점이다. C++을 사용하고 있고 cin/cout을 사용하고자 한다면, cin.tie(NULL)과 sync_with_stdio(false)를 둘 다 적용해 주고, endl 대신 개행문자(\n)를 쓰자. 단, 이렇게 하면 더 이상 scanf/printf/puts/getcha..

Studying/Algorithms 2022.04.04

[알고리즘 떠먹여 주는 남자] 백준 8393 - 합 for Node.js

안녕하세요! 알고리즘 풀이 연습 중 반복문 기초 문제를 하나 풀었는데 물론 간단한 문제이지만 좋아 보여서 이렇게 포스팅 하게 되었습니다. https://www.acmicpc.net/problem/8393 8393번: 합 n이 주어졌을 때, 1부터 n까지 합을 구하는 프로그램을 작성하시오. www.acmicpc.net 문제 n이 주어졌을 때, 1부터 n까지 합을 구하는 프로그램을 작성하시오. 입력 첫째 줄에 n (1 ≤ n ≤ 10,000)이 주어진다. 출력 1부터 n까지 합을 출력한다. 예제 입력 1 복사 3 예제 출력 1 복사 6 문제풀이 기초적인 반복문 문제로 for 혹은 while 루프를 사용하여 간단하게 풀 수 있지만, 저는 재귀함수 (recursive function) 을 이용하여 풀어 보았습니..

Studying/Algorithms 2022.04.04

[알고리즘 떠먹여 주는 남자] 백준 1157 - 단어 공부 for Node.js

안녕하세요.. 오늘도 알고리즘을 떠 드리기 위해 왔습니다. 최근 자바스크립트 공부에 열을 올렸는데, 아무래도 알고리즘을 너무 소홀히 한 것 같습니다. 가뜩이나 알고리즘 푸는 것도 오래 걸리는데 말이죠.. 참 연습을 하는데도 잘 늘지가 않는 것 같네요 ㅠㅠ 좀 더 정진해야 할 것 같습니다..! https://www.acmicpc.net/problem/1157 1157번: 단어 공부 알파벳 대소문자로 된 단어가 주어지면, 이 단어에서 가장 많이 사용된 알파벳이 무엇인지 알아내는 프로그램을 작성하시오. 단, 대문자와 소문자를 구분하지 않는다. www.acmicpc.net 오늘은 어떤 문제를 풀어볼까 찾아보다가 예전에 알고리즘 다시 공부 시작했을 때 빼먹고 넘어간 게 있더라구요.. 정확히 말하자면 못풀고 넘어간..

Studying/Algorithms 2022.04.04

[알고리즘 떠먹여 주는 남자] 백준 2525 - 오븐 시계 for Node.js

https://www.acmicpc.net/problem/2525 2525번: 오븐 시계 첫째 줄에 종료되는 시각의 시와 분을 공백을 사이에 두고 출력한다. (단, 시는 0부터 23까지의 정수, 분은 0부터 59까지의 정수이다. 디지털 시계는 23시 59분에서 1분이 지나면 0시 0분이 된다.) www.acmicpc.net 문제 KOI 전자에서는 건강에 좋고 맛있는 훈제오리구이 요리를 간편하게 만드는 인공지능 오븐을 개발하려고 한다. 인공지능 오븐을 사용하는 방법은 적당한 양의 오리 훈제 재료를 인공지능 오븐에 넣으면 된다. 그러면 인공지능 오븐은 오븐구이가 끝나는 시간을 분 단위로 자동적으로 계산한다. 또한, KOI 전자의 인공지능 오븐 앞면에는 사용자에게 훈제오리구이 요리가 끝나는 시각을 알려 주는 ..

Studying/Algorithms 2022.04.03

[Node.js 떠먹여 주는 남자] Promises vs. async/await in Node.js (1)

안녕하세요! 오늘은 JS 혹은 Node.js 개발자 분들이시라면 한번쯤은 꼭 써보셨을 거라고 생각 되는 Promise 와 async/await 에 관하여 알아보려고 합니다. 우리가 Promise 혹은 async/await 을 쓰는 이유는, 코드가 동시에 처리되지 않고, 위의 결과값을 이용하여 그 다음 코드를 실행시키게 하기 위함입니다. JavaScript 와 Node.js 는 비동기식 코드를 처리하기 위하여 callbacks, Promises, 그리고 async/await 을 사용합니다. 그렇다면, 도대체 왜 Promise 가 이미 존재함에도 async/await 이 개발된 것일까요? 지금부터 한번 알아보도록 하겠습니다. Promise Node.js 에서 Promise 는 위에서 언급되었듯이, 어떠한 일..

반응형