Computer Science/알고리즘
-
[Node.js] 백준 실버5 2751 수 정렬하기2Computer Science/알고리즘 2023. 5. 11. 10:09
https://www.acmicpc.net/problem/2751 2751번: 수 정렬하기 2 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 절댓값이 1,000,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. www.acmicpc.net 0. 시도 처음 풀었던 방법으로는 버블정렬 알고리즘을 이용하였는데 이렇게 하니까 시간 초과 에러가 났다. 버블 정렬 쓴 코드는 아래와 같다.. temp라는 변수를 하나 만들어서 swip 하는 방식으로 버블 정렬을 사용했다. const fs = require('fs') const filePath = process.platform === 'linux' ? '/dev/stdin' : './예..
-
[JS] 알고리즘 문제 풀이Computer Science/알고리즘 2023. 4. 27. 09:12
1. 객체를 입력받아 number 타입의 값을 갖는 속성을 모두 제거해야 합니다. 개념 const object1 = { a: 'somestring', b: 42 }; for (const [key, value] of Object.entries(object1)) { console.log(`${key}: ${value}`); } // Expected output: // "a: somestring" // "b: 42" 코드 function removeNumberValues(obj) { for (const [key, value] of Object.entries(obj)){ if(typeof value === "number"){ delete obj[key]; } } } 2. 문자열을 입력받아 문자열을 구성하는 각 ..
-
[JS] 전화번호 형식의 문자열을 리턴하는 알고리즘 풀이Computer Science/알고리즘 2023. 4. 25. 17:34
1. 문제 0-9 사이의 정수를 요소로 갖는 배열을 입력받아 전화번호 형식의 문자열을 리턴해야 합니다. 인자 1 : arr number 타입을 요소로 갖는 배열 arr[i]는 0 이상 9 이하의 정수 배열의 길이는 8 또는 11 출력 string 타입을 리턴해야 합니다. 주의 사항 반복문(for, while) 사용은 금지됩니다. 배열의 길이가 8인 경우, 앞에 [0, 1, 0]이 있다고 가정합니다. 예시 let output = createPhoneNumber([0, 1, 0, 1, 2, 3, 4, 5, 6, 7, 8]); console.log(output); // --> '(010)1234-5678' output = createPhoneNumber([8, 7, 6, 5, 4, 3, 2, 1]); cons..
-
[JS] 직각삼각형인지 판단하는 알고리즘Computer Science/알고리즘 2023. 4. 19. 05:47
문제 삼각형의 세 변을 입력받아 직각삼각형(pythagorean)인지 여부를 리턴해야 합니다. 주의사항 삼각형의 각 세 변은 무작위로 입력됩니다. 자바스크립트에서 x의 제곱(x squared)을 구하는 방법은 3가지 입니다. 세 가지 방법을 모두 사용해야 합니다. arr.sort 사용은 금지됩니다. 제곱을 구할 때는 입력으로 주어지는 변수를 그대로 사용해야 합니다. 풀이 피타고라스 정리에 의하면 직각삼각형은 제일 큰 변의 제곱은 나머지 두 변의 제곱의 합과 같다. 의사코드 (pseudocode) 1. 삼각형의 세 변의 값을 side1, side2, side3로 입력 받는다. 2. 각각의 변을 제곱한 값을 구한다. 3. side1이 큰 경우, side2가 큰 경우, side3가 가장 큰 경우를 나누어서 각..
-
[c] 에라토스테네스의 체로 소수 찾는 프로그램Computer Science/알고리즘 2021. 9. 22. 18:13
에라토스테네스의 체란? 대표적인 소수(Prime Number)를 판별하는 알고리즘이다. 주어진 수에서 2의 배수, 3의 배수, 5... 처럼 특정 숫자의 배수에 해당하는 숫자들을 먼저 지우고, 그렇게 채 처럼 걸러지고 남은 수들을 소수라고 합니다. 이는 대량의 소수를 한꺼번에 판별하고자 할 때 유용합니다. 에라토스테네스로 소수를 찾는 프로그램을 c언어로 구현하였습니다. #include int main(){ int num = 100; int count_prime = 0; int arr[100]; for(int i=0; i
-
[c언어] N의 약수가 주어질 때 N 값 구하는 프로그램Computer Science/알고리즘 2020. 8. 25. 23:19
문제: 양수 A가 N의 진짜 약수가 되려면, N이 A의 배수이고, A가 1과 N이 아니어야 한다. 어떤 수 N의 진짜 약수가 모두 주어질 때, N을 구하는 프로그램을 구현하라. source: m2.c #include #include //malloc 함수가 선언된 헤더파일 int *divisor; //divisor 포인터 선언 int compare(const void *a, const void *b) { //비교하는 함수 return (*(int*)a - *(int*)b); } int main() { int N; scanf("%d", &N); //N을 입력받음 divisor = malloc(sizeof(int)*N); //int 크기 4바이트만큼 동적 메모리 할당 for (int i = 0; i < N; ..
-
[정렬 알고리즘] 숫자 애너그램 찾기Computer Science/알고리즘 2020. 8. 25. 09:02
문제: ‘애너그램’이란 문자를 재배열하여 다른 뜻을 가진 단어로 바꾸는 것을 말합니다. 예를 들면 영어의 ‘tea’와 ‘eat’과 같이, 각 단어를 구성하는 알파벳의 구성은 같지만 뜻은 다른 두 단어를 말합니다. 우리말에는 ‘문전박대’와 ‘대박전문’과 같은 예를 들 수 있습니다. 우리는 문자 대신 숫자를 이용해서 애너그램을 찾는 프로그램을 만들어봅시다. 5자리의 숫자 1쌍이 입력으로 주어지며 애너그램일 경우에는 “True”를 아닐 경우에는 “False”를 출력하도록 합시다. 숫자를 입력받는 부분은 따로 구현하지 않고 프로그램 내부에 배열로 선언하는 것으로 가정하고, 숫자에는 중복이 있을 수 있습니다. 예) 입력값: 12345, 54321 -> 출력값: True 입력값: 14258, 25431 -> 출력값..