본문 바로가기

Algorithm8

함수 편 - Node.js로 [백준/BOJ] 단계별로 풀어보기를 풀어보다 안녕하세요! muko 입니다. 이번 시간에는 백준BOJ의 함수 파트를 풀어보려고 합니다. 총 세문제가 있는데, 첫 번째 문제는 Node.js를 지원하지 않는 문제라서 나머지 두 문제에 대해서 풀이를 올리도록 하겠습니다! BOJ 4373 - 셀프 넘버 # 문제 셀프 넘버는 1949년 인도 수학자 D.R. Kaprekar가 이름 붙였다. 양의 정수 n에 대해서 d(n)을 n과 n의 각 자리수를 더하는 함수라고 정의하자. 예를 들어, d(75) = 75+7+5 = 87이다. 양의 정수 n이 주어졌을 때, 이 수를 시작해서 n, d(n), d(d(n)), d(d(d(n))), ...과 같은 무한 수열을 만들 수 있다. 예를 들어, 33으로 시작한다면 다음 수는 33 + 3 + 3 = 39이고, 그 다음 수는 3.. 2020. 5. 17.
1차원 배열 편(2) - Node.js로 [백준/BOJ] 단계별로 풀어보기를 풀어보다 저번 포스팅과의 시간 공백이 정말 많이 길었습니다. 이어서 1차원 배열 편 포스팅 하겠습니다! BOJ 3052 - 나머지 두 자연수 A와 B가 있을 때, A%B는 A를 B로 나눈 나머지입니다. 이 때, 수 10개를 입력받은 뒤 42로 나눈 나머지 중에서 서로 다른 값이 몇 개 있는지 출력하는 문제입니다. 실제로 다른 프로그래밍 언어에서나 Javascript에서도 % 연산자는 나머지를 구할 때 사용합니다. 이 문제를 해결하기 위해서는 나머지를 구하는 부분, 그리고 지금까지 나머지가 몇 개 나왔는지 저장하고 그 갯수를 구하는 부분을 구현해야 합니다. // 입출력에 사용할 rl을 받아오는 함수 const getRl = () => { const readline = require('readline'.. 2020. 5. 11.
1차원 배열 편(1) - Node.js로 [백준/BOJ] 단계별로 풀어보기를 풀어보다 안녕하세요~ Muko 입니다. 이번 포스팅도 계속해서 백준의 단계별로 풀어보기를 진행하려고 합니다. 벌써 5번째 시간인데요! 요즘 백준에서 단계별로 풀어보기를 대대적으로 수정하고 있는지 예전과 달라진 곳 들도 있고, 아직 개편 중인 곳도 있어서 확정된 문제집 부터 풀어보려고 합니다. 그래서 오늘은 6번 째 단계인 1차원 배열 편을 풀어보도록 하겠습니다. 사실 블로그를 운영하는데는 C언어나 Java, Python으로 풀이를 올리는게 더 유입이 잘 될 것 같아서 계속해서 흔들리고 있습니다. 열심히 포스팅을 올리고 있는데, 구글이나 네이버에서 유입이 전혀 안되고 있어서 더욱 그러네요. 포스팅을 하고, 사람들이 들어와서 공부하고 왔다는 표시가 늘어날 수록 보상 받는 기분에서 더 열심히 하게될텐데, 제가 컨텐츠를.. 2020. 4. 25.
while문 편 - Node.js로 [백준/BOJ] 단계별로 풀어보기를 풀어보다 안녕하세요! Muko입니다. 저번 포스팅에서 다루었던 for문에 이어서 이번에도 반복문을 다룰 수 있는 while문 편에 대해서 풀어보도록 하겠습니다. for문과 달리 while문은 제한 조건만을 괄호 안에 명시하고, 그 조건을 만족한다면 계속해서 반복 loop를 도는 특징이 있습니다. 반복문에 대해 잘 모르신다면, 혹은 조금 더 자세하게 공부하고나서 문제를 풀고 싶으시다면 반복문 포스팅을 보고 와주세요! 1. BOJ 10952 - A+B - 5 이 문제는 두 정수 A와 B를 입력받은 다음에, A+B를 출력하면 되는 문제이지만 조건이 하나 붙습니다. 입력이 여러 개의 테스트 케이스로 이루어져 있꼬, 입력의 마지막에는 0 두 개가 들어온다는 조건입니다. 즉, 우리는 입력을 계속해서 받다가 '0 0'이 들어.. 2020. 4. 22.
for문 편(2) - Node.js로 [백준/BOJ] 단계별로 풀어보기를 풀어보다 BOJ 단계별로 풀어보기 'for문' - 2편 이번 포스팅에서는 저번에 작성한 BOJ 단계별로 풀어보기 - for문 1편에 이어서 2편을 작성해보려고 합니다. 저번 시간에 '기찍 N' 문제까지 풀었었고, 이번 포스팅에서는 'A+B - 7'부터 'X보다 작은 수'문제까지 쭉 풀어보도록 하겠습니다. 7. BOJ 11021 - A+B - 7 이 문제는 두 개의 정수 A와 B를 입력받았을 때 A+B를 출력하는 문제입니다. 매우 쉬워보이죠? 이 문제를 푸는 핵심 코드는 결국 입력 받아서 A+B 연산 결과를 출력해야 하는 BOJ A+B문제 와 비슷하게 해결할 수 있습니다. 그런데 백준에 동일한 문제가 두 개 있을 이유는 없겠죠? 여기서의 차이점은 바로 테스트 케이스의 존재입니다. 기존의 A+B 문제는 입력으로부터 .. 2020. 4. 17.
for문 편(1) - Node.js로 [백준/BOJ] 단계별로 풀어보기를 풀어보다 BOJ 단계별로 풀어보기 'for문' - 1편 저번 포스팅에는 if을 다루었었고, 이번 포스팅에서는 반복문 중에서도 for문에 대해서 문제를 모아놓은 것을 풀어보도록 하겠습니다. 사실 백준 단계별로 풀어보기의 이번 단계 이름이 for문 이라고 작성되어있지만, 반복문을 동작시킬 수 있는 다른 문법을 사용해도 문제를 푸는게 가능합니다. 가장 보편적이고 처음에 직관적으로 이해하기 쉬운 것이 for문이라서 이렇게 이름을 작성한 것 같아요. 물론 for문과 while문의 사용방법이 조금 다르긴 하지만 동일하게 작동이 가능한데, 백준에서는 어떤 상황에서 각 반복문 문법을 사용하는 것이 좋은지 나름 생각해서 for문 편과 while문 편을 나누어서 문제집을 만들어 놓았더라구요. 핵심은 '어떤 문법이 항상 정답처럼 사.. 2020. 4. 14.
if문 편 - Node.js로 [백준/BOJ] 단계별로 풀어보기를 풀어보다 BOJ 단계별로 풀어보기 'if문' 저번 포스팅에 이어, 이번에는 백준 단계별로 풀어보기의 두 번째인 if문 편에 대해서 작성하려고 합니다. 프로그래밍 언어를 배우고, 공부하고 익히는데는 문제를 풀어보면서 직접 코딩하는 것이 최고입니다. 책이나 유튜브 영상, 블로그 글을 보면서 예제를 따라치는 것도 좋지만 재미가 없잖아요! 직접 코딩하고 그 결과가 눈에 보이는 재미를 느끼면서 공부하는 것이 최고라고 생각합니다. 백준 사이트를 아직 모르신다면, 그리고 프로그래밍이나 코딩 공부를 접한지 얼마 되지 않으셨다면, 혹은 비전공자라면 백준 사이트에 들어가셔서 가입해보세요! 그리고 문제를 풀 때마다 마이페이지에 들어가면 푼 문제 수와 랭킹이 나오는데, 이 랭킹을 올리는 재미도 쏠쏠합니다. 그럼 if문을 풀어보도록 하.. 2020. 4. 12.
입출력과 사칙연산 편 - Node.js로 [백준/BOJ] 단계별로 풀어보기를 처음 풀어보았다. BOJ 단계별로 풀어보기 '입출력과 사칙연산' 단계별로 풀어보기는 윗 부분은 알고리즘이라고 하기에는 단순히 사용하는 언어의 문법을 아는가에 대한 문제가 많이 존재합니다. 새로운 언어로 프로그래밍을 하는 요즘, 제가 주로 사용하는 언어로 알고리즘을 풀어보고 싶다는 생각이 들어서 포스팅을 시작하려고 합니다. 1. BOJ 2557 - Hello World 이 문제는 Hello World! 를 출력하라는 문제로, 해당 언어로 문자열을 출력할 수 있느냐고 물어보는 문제입니다. 자바스크립트에서는 한 줄이면 되므로 아주 간단하게 풀었습니다. 코드 접기/펼치기 console.log('Hello World!'); 2. BOJ 10718 - We love kriii 이 문제도 마찬가지로 주어진 문장을 출력할 수 있는가에 .. 2020. 4. 11.