Challenge
Careers
Class
Connect
로그인 후 문제풀이가 가능합니다.
JS
const fs = require('fs'); let input = fs.readFileSync('input.txt', 'utf8').trim().split('\n')[1].split(' ').map(Number); const array = Array(101).fill(0) input.forEach(v => { for (let i = 1; i <= Math.sqrt(v); i++) { if (v % i === 0) { array[i]++ if (i !== Math.sqrt(v)) { array[v/i]++; } } } }) array[1] = 0 console.log(Math.max(...array));
sort의 유무
const readline = require('readline'); const rl = readline.createInterface({ input: process.stdin, output: process.stdout, }); const input = []; rl.on('line', (line) => { input.push(line) }).on('close', () => { const N = Number(input[0]); const nanlo = input[1].split(' ').map(Number); const map = Array(100).fill(0); for(let i = 0; i < N; i++) { for (let j = 2; j < map.length; j++) { if(nanlo[i] % j === 0) { map[j] += 1; } } } console.log(Math.max(...map)) process.exit(0); }); 안녕하세요 위 코드는 이 문제의...
반례 부탁드립니다.
import java.io.*; import java.util.*; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer st = new StringTokenizer(br.readLine()); int n = Integer.parseInt(st.nextToken()); int[] arr = new int[n]; st = new StringTokenizer(br.readLine()); for(int i=0; i<n; i++) { arr[i] = Integer.parseInt(st.nextToken()); } System.out.println(sol(arr[n-1], arr)); } private static int sol(int nu...
c++ 18번 testcase만 오류뜨는데 이유가 뭔지 모르겠습니다!
#include <iostream> #include<vector> using namespace std; int main(void) { int n; cin >> n; vector<int> home(n); vector<int> cnt(n, 0); int max=-1; for(int i=0; i<n; i++){ cin >> home[i]; if(home[i] > max){ max = home[i]; } } for(int i=2; i<=max; i++){ for(int j=0; j<n; j++){ if(home[j]>0 && home[j]%i==0){ cnt[i]++; } } } int result=-1; for(int i=0; i<n; i++){ if(cnt[i] > result){ result = cnt[i]; } } cout << result << endl; return 0; }
자바 정답코드 공유합니다
import java.io.*; import java.util.*; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int n = Integer.parseInt(br.readLine()); // 집의 수 int[] heaterDiameterArr = new int[n]; String[] strArr = br.readLine().split(" "); int maxCnt = 0; int cnt = 0; for(int i=0; i<n; i++) { heaterDiameterArr[i] = Integer.parseInt(strArr[i]); ...
소수로 접근해서 TC 10,18,19 에러
안녕하세요, Softeer는 안 지 일주일도 안되었지만 좋은 문제가 많은 거 같아요 감사합니다~ 연탄 크기 문제 풀어보았는데요 결국 최소공배수 구하는 문제로 보여서 아래처럼 소수로 나누어 떨어지는지 확인하는 방법으로 접근해보았습니다. #include<iostream> #include<vector> #include<algorithm> using namespace std; int main(int argc, char** argv) { int input_num = 0; vector<int> prime_num = {2,3,5,7,11,13,17,19,23,29,31,37,41,43,47}; cin >> input_num; vector<int> house(input_num,0); vector<int> result(prime_num.size(),0); for(int i = 0; i < input_num; ++i){ ...
예외 케이스가 하나 있는데 뭘까요..?
import java.util.*; public class Main { public static void main(String[] args) { Scanner sc=new Scanner(System.in); int n=sc.nextInt(); int arr[]=new int[n]; for(int i=0;i<n;i++){ arr[i]=sc.nextInt(); } Arrays.sort(arr); int max=Integer.MIN_VALUE; for(int i=arr[0];i<=arr[n-1];i++){ int count=0; for(int j=0;j<n;j++){ if(arr[j]%i==0)count++; ...
자바 정답 공유
import java.io.*; import java.util.*; /* * 1.난로의 반지름 길이가 연탄의 반지름 길이의 배수인 집에서만 연탄 사용 가능 * 2. n개의 집에 각가 놓여있는 난로의 반지름 길이가 주어졌을 때 * 3. 연탄의 반지름을 잘 설정해 최대한 많은 집에서 연탄을 사용할 수 있게 한다. */ public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int[] x = new int[n]; for(int i = 0; i < n; i++){ x[i] = sc.nextInt(); } sc.close(); int result = 0; Arrays.sort(x); int max = x[n-1]; for(int j = 2; j <= max; j++){ int compare = 0; for(int k = 0; k ...
이게 왜 안되는 걸까요,,,
import sys l = sys.stdin.readlines() output = [] l = list(map(int,l[1].rstrip('\n').split(' '))) for i in range(min(l),101): tmp = [v % i for v in l] output.append(tmp.count(0)) print(max(output)) 이대로 하면 1,2 번 빼고 다 런타임 에러네요.. 왜그런걸까요..? 일단 sys가 아니라 input()으로 하면 되긴 한데 9번은 오답이고요. 이것도 왜 그런지 혹시 알려주실 분 계신가요!ㅠ
C 언어 정답 코드 공유
#include <stdio.h> int max(int *a,int size){ int maxx=a[0]; for(int i=0;i<size;i++){ if(maxx<a[i]) { maxx=a[i]; } } return maxx; } int main(void) { int n; scanf("%d",&n); int hous_rad[n]; for(int i=0;i<n;i++){ scanf("%d",&hous_rad[i]); } int m=max(hous_rad,n); int count=0; int max_f=0; for(int i=2;i<m+1;i++){ //연탄의 반지름 i for(int j=0;j<n;j++){ if (hous_rad[j]%i==0){ count=count+1; } else count=count; } if (max_f<count) max_f=count; count=0; } printf("%d",max_f); return 0; } 더 간단히 풀 수 있다면 공유해쥬세여