본문 바로가기

728x90

BOJ/수학

(26)
BOJ : 1789 수들의합 (JS , nodeJS) 소스코드 let fs = require('fs'); const filePath = process.platform === `linux` ? `/dev/stdin` : `예제.txt`; let input = fs.readFileSync(filePath).toString() const c = console.log let n = Number(input) let temp = 0 let count = 0 for(let i = 1 ; n+1 ; i++){ temp += i count +=1 if (temp > input){ count-=1 break } } c(count) 풀이 1에서 부터 n 까지 i를 계속 더하다가 입력값 보다 많아지는 경우, 최대값을 구할 수 있다. 문제 https://www.acmicpc.ne..
BOJ : 26645 성장의비약선택권 (JS) 소스코드 let fs = require('fs'); const filePath = process.platform === `linux` ? `/dev/stdin` : `예제.txt`; let input = fs.readFileSync(filePath).toString().split('\n'); const c = console.log n = Number(input[0]) if (200
BOJ : 2004 조합0의 개수 (JS) 소스코드 let fs = require('fs'); const filePath = process.platform === `linux` ? `/dev/stdin` : `예제.txt`; let input = fs.readFileSync(filePath).toString().trim().split(' '); const c = console.log 33 let lst = [] for (v of input){ lst.push(Number(v)) } k = lst[0] n = lst[1] kn = k-n mod5 = (num) => { count = 0 while (num >= 5){ count += parseInt(num/5) num = parseInt(num)/5 } return count } mod2 = (n..
BOJ : 1676 팩토리얼 0의 개수 (JS) 소스코드 let fs = require('fs'); const filePath = process.platform === `linux` ? `/dev/stdin` : `예제.txt`; let input = fs.readFileSync(filePath).toString().trim().split(''); const c = console.log str='' for(let i = input.length-1; i >= 0 ; i--){ str = input[i].concat(str) } ans = Number(str) let dp = [] dp[0]=0 let p = 1 let pivot = 1 let pivot2 = 1 for (let i = 1 ; i < 501 ; i++) { if (pivot % 25 ==..
BOJ : 9375 패션왕신해빈 (JS) 소스코드 let fs = require('fs'); const filePath = process.platform === "linux" ? `/dev/stdin` : `예제.txt`; let input = fs.readFileSync(filePath).toString().trim().split('\n'); const c = console.log n = Number(input[0]) let array = []; //입력값 받기 for (let i = 1; i < input.length; i++) { if (input[i] !== '') { array.push(input[i].split(' ')); } } for (let i = 0 ; i
BOJ : 3036 링 (파이썬) 소스코드 import sys import math n = int(sys.stdin.readline()) lst = list(map(int, sys.stdin.readline().split())) p = lst[0] for i in range(1,n) : gcdNumber = math.gcd(p,lst[i]) print(p//gcdNumber,end='') print('/',end='') print(lst[i]//gcdNumber,end='\n') 풀이 최대공약수를 구해서 기약분수로 만들면 됩니다. 문제 https://www.acmicpc.net/problem/3036 3036번: 링 출력은 총 N-1줄을 해야 한다. 첫 번째 링을 제외한 각각의 링에 대해서, 첫 번째 링을 한 바퀴 돌리면 그 링은 몇 바..
★ BOJ : 2981 검문 (파이썬) ★ 소스코드 import sys import math n = int(sys.stdin.readline()) lst = [] for i in range(n) : a = int(sys.stdin.readline()) lst.append(a) lst.sort() gc = [] for i in range(len(lst)-1) : gc.append(lst[i+1] - lst[i]) gc.sort() mini = gc[0] for i in range(len(gc)-1) : mini = math.gcd(mini,gc[i+1]) result = [] for i in range(2,int(math.sqrt(mini)+1)) : if mini % i == 0 : result.append(i) if ((i**2) != mini..
BOJ : 1934 최소공배수 (파이썬) 소스코드 import sys import math n = int(sys.stdin.readline()) for i in range(n) : a,b = map(int, sys.stdin.readline().split()) print(math.lcm(a,b)) 풀이 라이브러리를 사용했다 ㅎㅎ.. gcd => 최대공약수 lcm => 최소공배수 외워두자 !! 문제 https://www.acmicpc.net/problem/1934 1934번: 최소공배수 두 자연수 A와 B에 대해서, A의 배수이면서 B의 배수인 자연수를 A와 B의 공배수라고 한다. 이런 공배수 중에서 가장 작은 수를 최소공배수라고 한다. 예를 들어, 6과 15의 공배수는 30, 60, 90등이 있 www.acmicpc.net

728x90