Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
51 changes: 50 additions & 1 deletion src/problem1.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,54 @@
function problem1(pobi, crong) {
var answer;
if(pobi[0]+1 === pobi[1] && crong[0]+1 === crong[1]){
var pobi_num;
var crong_num;
var multiple_num=1;
var addition_num=0;
var answer;

function get_num(arr){
for(var i=0; i<2; i++){
var maxvalue;

n = arr[i].toString();
for(let j of n){
addition_num += Number(j);
multiple_num *= Number(j);
}
if (addition_num > multiple_num){
arr[i] = addition_num;
}
else{
arr[i] = multiple_num;
}
addition_num = 0;
multiple_num = 1;
}
if(arr[0] > arr[1]){
maxvalue = arr[0];
}
else
maxvalue = arr[1];
return maxvalue;
}

pobi_num = get_num(pobi);
crong_num = get_num(crong);

if(pobi_num > crong_num){
answer = 1;
}
else if(pobi_num < crong_num){
answer = 2;
}
else if(pobi_num == crong_num){
answer = 0;
}
else{
answer = -1;
}
} else answer = -1;

return answer;
}

Expand Down
19 changes: 19 additions & 0 deletions src/problem2.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,24 @@
function problem2(cryptogram) {
var answer;
var stack = [];
var length = 0;

n = cryptogram;
for(let j = 0; j < n.length; j++){
stack.push(n[j]);
}
while(length != stack.length){
length = stack.length;

for(var i=0; i<stack.length; i++){
if(stack[i] === stack[i+1]){
stack.splice(i,2);
i--;
}
}
answer = stack.join("");
}

return answer;
}

Expand Down
18 changes: 16 additions & 2 deletions src/problem3.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,20 @@
function problem3(number) {
var answer;
return answer;
var clap = 0;
var numlist;
var n;

n = number.toString().length;
for(var i=1; i <= number; i++){
numlist = i.toString();
for(var j=0; j < numlist.length; j++){
var value = Number(numlist[j]);
if(value === 3 || value === 6 || value === 9)
clap++;
}
}


return clap;
}

module.exports = problem3;
19 changes: 17 additions & 2 deletions src/problem4.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,21 @@
function problem4(word) {
var answer;
return answer;
var word_list_rev =[];
var word_list = word.split('');

for(var i = 0; i< word.length; i++){
var askii = word_list[i].charCodeAt(0); //문자열 첫번째 아스키코드값 가져오기

if(askii >= 65 && askii <= 90){
word_list_rev.push(String.fromCharCode(155-askii));
}
else if(askii >= 97 && askii <= 122){
word_list_rev.push(String.fromCharCode(219-askii));
}
else{
word_list_rev.push(' ');
}
}
return word_list_rev.join('');
}

module.exports = problem4;
21 changes: 19 additions & 2 deletions src/problem5.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,23 @@
function problem5(money) {
var answer;
return answer;
var goodthing = [0,0,0,0,0,0,0,0,0];
goodthing[0] = Math.floor(money/50000);
money %= 50000;
goodthing[1] = Math.floor(money/10000);
money %= 10000;
goodthing[2] = Math.floor(money/5000);
money %= 5000;
goodthing[3] = Math.floor(money/1000);
money %= 1000;
goodthing[4] = Math.floor(money/500);
money %= 500;
goodthing[5] = Math.floor(money/100);
money %= 100;
goodthing[6] = Math.floor(money/50);
money %= 50;
goodthing[7] = Math.floor(money/10);
money %= 10;
goodthing[8] = Math.floor(money/1);
return goodthing;
}

module.exports = problem5;
32 changes: 30 additions & 2 deletions src/problem6.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,34 @@
function problem6(forms) {
var answer;
return answer;
const emailSet = new Set();

function getchars(nickname) {
const name = new Set();
for (let i = 0; i < nickname.length - 1; i++) {
name.add(nickname.slice(i, i + 2));
}
return Array.from(name);
}

for (let i = 0; i < forms.length; i++) {
const [email1, nickname1] = forms[i];
const name1Substrings = getchars(nickname1);

for (let j = 0; j < forms.length; j++) {
if (i === j) continue;

const [email2, nickname2] = forms[j];
for (const substring of name1Substrings) {
const regExp = new RegExp(substring);
if (regExp.test(nickname2)) {
emailSet.add(email1);
emailSet.add(email2);
break;
}
}
}
}

return Array.from(emailSet).sort();
}

module.exports = problem6;
36 changes: 34 additions & 2 deletions src/problem7.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,38 @@
function problem7(user, friends, visitors) {
var answer;
return answer;
const clsrn = new Set();
var score = new Map();
var result = [];

friends.forEach(element => {//친구들 셋 추가
const[friend1,friend2]= element;
if(user === friend1){
clsrn.add(friend2);
}
if(user === friend2){
clsrn.add(friend1);
}
});


friends.forEach(element => {//친구의 친구 10점 추가
const [friend1,friend2] = element;
if(clsrn.has(friend1) && friend2!==user && !clsrn.has(friend2)){
score.set(friend2,(score.get(friend2)||0)+10);
}

if(clsrn.has(friend2) && friend1 !== user &&clsrn.has(friend1)){
score.set(friend1,(score.get(friend1)||0)+10);
}
});

visitors.forEach(visitor => {//방문자 1점 추가
if(!clsrn.has(visitor)){
score.set(visitor,(score.get(visitor)||0)+1);
}
});

result=Array.from(score).sort((a, b) => b[1] - a[1]).map(item => item[0]);
return result;
}

module.exports = problem7;