백준 #2688 줄어들지 않아

개발/알고리즘2020.03.12
어떤 숫자가 줄어들지 않는다는 것은 그 숫자의 각 자리 수보다 그 왼쪽 자리 수가 작거나 같을 때 이다. 예를 들어, 1234는 줄어들지 않는다. 줄어들지 않는 4자리 수를 예를 들어 보면 0011, 1111, 1112, 1122, 2223이 있다. 줄어들지 않는 4자리수는 총 715개가 있다. 이 문제에서는 숫자의 앞에 0(leading zero)이 있어도 된다. 0000, 0001, 0002는 올바른 줄어들지 않는 4자리수이다. n이 주어졌을 때, 줄어들지 않는 n자리 수의 개수를 구하는 프로그램을 작성하시오. https://www.acmicpc.net/problem/2688 DP문제입니다! 문제를 풀면서 알았는데 문제의 특징을 뽑아 점화식을 설계하면 편리한거 같습니다. 자릿수 n이 주어지고 줄어들지..

Rust toolchain 설치 시 액세스 거부 해결하기

개발2020.02.19
Rust toolchain 설치 시 아래와 같은 오류가 발생하곤 합니다. error: could not rename component file from '경로\rust-docs\share/doc/rust/html' to '경로\share/doc/rust/html' info: caused by: 액세스가 거부되었습니다. (os error 5) 관리자 권한으로도 실행 해보고 직접 파일 이름을 바꾸기도(??) 해봤는데 아쉽게도 이 방법은 아니였고 백신 사용 시 백신을 모두 끄고 설치하시면 해결됩니다.

코틀린 Kotlin 다루기 (7) - 조건식

개발2020.02.07
조건식 조건식은 조건에 따라 코드 실행을 하기 위한 문법입니다. Java, C 등 다른 언어와 매우 흡사하며 다른 언어에서 써본 적이 있다면 쉽게 다룰 수 있습니다. 숫자를 입력 받으면 짝수, 홀수에 따라 다른 코드를 실행하거나 특정 퀘스트를 완료하면 작동하는 코드 등 모두 조건식으로 해결 할 수 있습니다. If if는 조건을 확인 할 수 있는 기초적인 문법입니다. val a = 6 val b = 5 if(a > b) { println("변수 a가 변수 b보다 큽니다.") } a와 b를 비교하여 a가 b보다 큰 경우(a > b) 문구를 출력하는 코드입니다. if 괄호 안에 조건을 쓸 수 있으며 해당 조건 만족 시 중괄호( {} ) 안에 포함된 코드가 작동됩니다. 이번에는 입출력까지 응용하여 입력받은 수가..

최대공약수와 최소공배수

개발/알고리즘2019.12.22
최대공약수 최대공약수를 구하는 알고리즘으로 유명한 유클리드 호제법이 있습니다. "두 개의 자연수 a, b에서 a를 b로 나눈 나머지 r이 있을 때, a와 b의 최대공약수는 b와 r의 최대공약수와 같다." 이 원리를 이용하여 a, b가 있을 때 b MOD r를 구하고 이를 r'라고 하면, r MOD r'를 반복하여 나머지가 0이 되었을 때 나누는 수가 a와 b의 최대공약수입니다. (gcd) 그대로 코드로 표현해보면 int gcd(int a, int b) { int r; while(b) { r = a % b; a = b; b = r; } return a; } 단, a > b는 이어야하기 때문에 b > a라면 두 숫자를 바꿔주는 과정이 필요합니다. int gcd(int a, int b) { if(b > a) ..

Kotlin으로 만든 디스코드 봇 Jenkins 적용기

개발2019.12.02
학교 급식, 시간표를 빠르게 보기 위한 용도로 제작된 디스코드 봇이 있습니다. 해당 디스코드 봇은 Kotlin에 JDA 라이브러리를 이용했는데 번거롭고 귀찮던 배포 과정을 Jenkins로 간단하게 줄이면서 있었던 일들을 써볼까 합니다. 불편했던 기존 과정 기존 과정은 정직한 방법(?)이었습니다. 1. Gradle로 빌드 & .jar 패키징 2. 서버에 FTP로 .jar 파일 전송 3. SSH 접속 후 Docker image build 4. Docker 컨테이너 재시작 간단하면서도 복잡하게 보였던 이 과정을 봇을 업데이트할 때마다 하자니 번거롭습니다. 마침 Jenkins로 배워봐야겠다 싶어 이 과정을 Jenkins로 자동화해보았습니다. Jenkins를 써보자! (아래 과정은 GitHub 계정 등록, Gra..

교내 문제풀이 사이트 개발기

개발/후일담2019.10.19
자격증 시험을 보거나 연습하기 위해 CBT(컴퓨터로 문제 푸는 거) 문제풀이 방식을 사용합니다. 학교 시험공부를 CBT로 하면 어떨까라는 생각으로 시작하였습니다. (만들어놓고 거의 안씀) (아마 시험 2주전인가 1주 전에 제작했던 걸로 기억) 소프트웨어와 관련된 학교이고 반이기 때문에 "소프트" 유사 단어인(???) "수프트"로 프로젝트 이름을 결정하였습니다. 늘 만들던 데로 Front-End는 TypeScript, React로 Back-End는 TypeScript, NodeJS로 결정했습니다. 초기 계획은 관리자가 과목별로 문제를 작성하고 일부 문제는 랜덤으로 출제되는 방식입니다. 학교에서 배우는 것중 제일 간단하고 기초적인 문제는 '2진수를 10진수로 변환하기'와 같은 진수 변환입니다. 랜덤 한 숫자..
반응형