본문 바로가기

javascript78

음수의 나머지 계산법 음수를 모듈러 연산자 % 로 연산 할때는 음수에 나눌 숫자의 배수를 더해서 양수로 만들어 줘야한다 더해도 나눌 숫자의 배수를 더한거니 나머지의 값은 같기 때문에 걱정 안 할 필요는 없다 let ans = -3 mod 8; 위의 경우 나눌 수가 -3으로 음수이므로 나누는 숫자인 8의 배수를 아무거나 더해서 (1배수든... 2배수든...) 양수로 만들어 주자. 8의 1배수 8을 더해보자 let ans = (-3 + 8) mod 8; let ans = 5 mod 8; console.log(ans); // 5 위와 같은 방법으로 음수도 %모듈러 연산자로 연산 가능하다 모듈러의 음수를 해결해도 문제가 에러가 난다면, 큰 수를 처리하기 위한 BigInt 등의 사용도 고려해보자 2022. 9. 26.
[백준 1966/javascript] 프린터 큐 큐를 돌리며 높은 순서대로 뽑아내고 같은 숫자가 여러개라도 처음에 특정한 요소를 제대로 세며 몇번째로 뽑는지 세는 문제 문제에서 원하는건 간단한데 구현이 조금 까다로웠다 같은 수여도 초기 선택 요소를 특정하기 위해서 큐를 돌릴 배열과 크기가 같되, 특정 인덱스만을 표시하여 현재 특정한 요소의 인덱스를 확인가능하여 같은 수가 여러개여도 혼동하지 않도록 하였다 https://www.acmicpc.net/problem/1966 1966번: 프린터 큐 여러분도 알다시피 여러분의 프린터 기기는 여러분이 인쇄하고자 하는 문서를 인쇄 명령을 받은 ‘순서대로’, 즉 먼저 요청된 것을 먼저 인쇄한다. 여러 개의 문서가 쌓인다면 Queue 자료구조에 www.acmicpc.net let input = []; const re.. 2022. 9. 26.
[백준 15904/javascript] UCPC는 무엇의 약자일까? 아주아주 간단한 정규표현식 문제. 아직 익숙해지려면 멀었다 *.를 약어 사이에 적어주어서 어떤 문자던 0개 이상 올 수 있다는 것을 명시해서 만들어주면 된다 https://www.acmicpc.net/problem/15904 15904번: UCPC는 무엇의 약자일까? 첫 번째 줄에 알파벳 대소문자, 공백으로 구성된 문자열이 주어진다. 문자열의 길이는 최대 1,000자이다. 문자열의 맨 앞과 맨 끝에 공백이 있는 경우는 없고, 공백이 연속해서 2번 이상 주어지는 www.acmicpc.net let input = []; const readline = require("readline").createInterface({ input: process.stdin, output: process.stdout, }); r.. 2022. 9. 24.
[백준 15655/javascript] N과 M (6) 백트래킹 문제 중복 불가이므로 중복을 확인할 배열을 만들어주고, 오름차순으로 결과가 나와야 하므로 미리 선택지 배열을 sort 후, 백트래킹 함수에 넣었다 앞의 수보다 뒤에 수가 더 커야 하므로 인자를 하나 더 전달하여 해결하였다 https://www.acmicpc.net/problem/15655 15655번: N과 M (6) N개의 자연수와 자연수 M이 주어졌을 때, 아래 조건을 만족하는 길이가 M인 수열을 모두 구하는 프로그램을 작성하시오. N개의 자연수는 모두 다른 수이다. N개의 자연수 중에서 M개를 고른 수열 www.acmicpc.net let input = []; const readline = require("readline").createInterface({ input: process.std.. 2022. 9. 23.