1. 최대공약수와 최소공배수(https://school.programmers.co.kr/learn/courses/30/lessons/12940)
function solution(n, m) {
var answer = [];
var maxNum = [], minNum = [];
var i = 1;
while(1)
{
if(m < i)
break;
if(m % i === 0 && n % i === 0)
maxNum.push(i);
i+=1;
}
for(var j = n*m; j>=1; j--){
if(j%n==0 && j%m==0)
minNum.push(j);
}
answer.push(maxNum[maxNum.length - 1]);
answer.push(minNum[minNum.length - 1]);
return answer;
}
2. 3진법 뒤집기(https://school.programmers.co.kr/learn/courses/30/lessons/68935?language=c)
// c언어
#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>
int solution(int n) {
int answer = 0;
int num = n;
long long threeNum = 0; // int로 해보니 오류가 테스트 2, 8, 9, 10에서 문제가 생긴다...
while(num > 0)
{
threeNum *= 10;
threeNum += (num % 3);
num /= 3;
}
int i=1;
while(threeNum > 0)
{
answer += (threeNum % 10) * i;
i *= 3;
threeNum /= 10;
}
return answer;
}
// js
function solution(n) {
var answer = 0;
var num = [];
while(n > 0){
num.push(n % 3);
n = parseInt(n /= 3);
}
var j = 1;
for(var i=num.length - 1; i>=0; i--){
answer += num[i] * j;
j *= 3;
}
return answer;
}
3. 이상한 문자 만들기(https://school.programmers.co.kr/learn/courses/30/lessons/12930)
// c언어
#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
// 파라미터로 주어지는 문자열은 const로 주어집니다. 변경하려면 문자열을 복사해서 사용하세요.
char* solution(const char* s) {
// return 값은 malloc 등 동적 할당을 사용해주세요. 할당 길이는 상황에 맞게 변경해주세요.
char* answer = (char*)malloc(strlen(s) + 1);
int ctr = 0;
strcpy(answer, s);
for(int i=0; i<strlen(s); i++)
{
if(ctr % 2 == 0 && islower(answer[i]))
{ // 짝수에 소문자면 대문자로 변경
answer[i] += ('A' - 'a');
}
else if(ctr % 2 == 1 && isupper(answer[i]))
{ // 홀수에 대문자면 소문자로 변경
answer[i] -= ('A' - 'a');
}
else if(answer[i] == ' ')
{
ctr = 0;
continue;
}
ctr++;
}
return answer;
}
// js
function solution(s) {
var answer = '';
var j = 0;
for(var i=0; i<s.length; i++){
if(j % 2 === 0)
answer += s[i].toUpperCase();
else if(j % 2 === 1)
answer += s[i].toLowerCase();
j++;
if(s[i] === ' '){
answer += "";
j = 0;
}
}
return answer;
}
4. 삼총사(https://school.programmers.co.kr/learn/courses/30/lessons/131705)
// c언어
#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>
int solution(int number[], size_t number_len) {
int answer = 0;
int sum = 0;
for(int i = 0; i < number_len; i++)
for(int j = i + 1; j < number_len; j++)
for(int k = j + 1; k < number_len; k++)
{
sum = number[i] + number[j] + number[k];
if(sum == 0)
answer++;
}
return answer;
}
// js
function solution(number) {
var answer = 0;
var sum = 0;
for(var i=0; i<number.length; i++)
for(var j=i+1; j<number.length; j++)
for(var k=j+1; k<number.length; k++){
sum = number[i] + number[j] + number[k];
if(sum === 0)
answer++;
}
return answer;
}
5. 크기가 작은 부분(https://school.programmers.co.kr/learn/courses/30/lessons/147355)
// c언어
#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>
#include <string.h>
int solution(const char* t, const char* p) {
long long answer = 0, tNum, pNum = atoll(p);
for(int i=0; i<=strlen(t) - strlen(p); i++)
{
tNum = 0;
for(int j=0; j<strlen(p); j++)
{
tNum *= 10;
tNum += t[i + j] - '0';
}
if(tNum <= pNum)
answer++;
}
return answer;
}
// js
function solution(t, p) {
var answer = 0;
for(var i=0; i<=t.length - p.length; i++){
var num = t.substr(i, p.length);
if(Number(num) <= Number(p))
answer++;
}
return answer;
}
'프로그래머스' 카테고리의 다른 글
24/07/31 알고리즘 문제 (0) | 2024.07.31 |
---|---|
24/07/30 알고리즘 문제 (0) | 2024.07.30 |
24/07/16 SQL 문제 (0) | 2024.07.16 |
24/07/15 알고리즘 문제 (0) | 2024.07.15 |
24/07/11 SQL 문제 (0) | 2024.07.11 |