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
69 changes: 68 additions & 1 deletion src/problem1.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,73 @@
function problem1(pobi, crong) {
var answer;
var n1;
var n2 = pobi[0];
var sum = 0;
var mul = 1;

if(pobi[0]+1 != pobi[1] || crong[0]+1 != crong[1]){
answer = -1;
return answer;
}

while(n2!=0){
n1 = n2 % 10;
n2 = Math.floor(n2 / 10);

sum = sum + n1;
mul = mul * n1;
}
var leftP = Math.max(sum, mul); //포비 왼쪽에서 큰 값

n2 = pobi[1];
sum = 0;
mul = 1;
while(n2!=0){
n1 = n2 % 10;
n2 = Math.floor(n2 / 10);

sum = sum + n1;
mul = mul * n1;
}
var rightP = Math.max(sum, mul); //포비 오른쪽에서 큰 값

n2 = crong[0];
sum = 0;
mul = 1;
while(n2!=0){
n1 = n2 % 10;
n2 = Math.floor(n2 / 10);

sum = sum + n1;
mul = mul * n1;
}
var leftC = Math.max(sum, mul); //크롱 왼쪽에서 큰 값

n2 = crong[1];
sum = 0;
mul = 1;
while(n2!=0){
n1 = n2 % 10;
n2 = Math.floor(n2 / 10);

sum = sum + n1;
mul = mul * n1;
}
var rightC = Math.max(sum, mul); //크롱 오른쪽에서 큰 값

pobi = Math.max(leftP, rightP);
crong = Math.max(leftC, rightC);

if(pobi>crong){
answer = 1;
}
else if(pobi<crong){
answer = 2;
}
else if(pobi==crong){
answer = 0;
}
return answer;
}

module.exports = problem1;
module.exports = problem1;
18 changes: 18 additions & 0 deletions src/problem2.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,23 @@
function problem2(cryptogram) {
var answer;
var word = "";
var string = cryptogram.split("");
var strlen = 0;

while(string.length!=strlen){
strlen = string.length;
for(var i=1; i<string.length; i++){
if(string[i-1] == string[i]){
string.splice(i-1, 2);
}
}
}

for(var j=0; j<string.length; j++){
word = word + string[j];
}
answer = word;

return answer;
}

Expand Down
18 changes: 17 additions & 1 deletion src/problem3.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,22 @@
function problem3(number) {
var answer;
var n1;
var n2;
var count = 0;
var d = 0;
for(var i=1; i<number+1; i++){
n2 = i;

while(n2!=0){
n1 = n2 % 10;
if(n1==3 || n1==6 || n1==9){
count++;
}
n2 = Math.floor(n2 / 10);
}

}
answer = count;
return answer;
}

module.exports = problem3;
22 changes: 22 additions & 0 deletions src/problem4.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,27 @@
function problem4(word) {
var answer;
var wordList = word.split("");
var n;
var changedWord = "";
for(var i=0; i<wordList.length; i++){
if(wordList[i]==" "){
continue;
}
if(wordList[i].charCodeAt()>=97 && wordList[i].charCodeAt()<=122){
n = wordList[i].charCodeAt() - 97;
wordList[i] = String.fromCharCode(122 - n);
}

else if(wordList[i].charCodeAt()>=65 && wordList[i].charCodeAt()<=90){
n = wordList[i].charCodeAt() - 65;
wordList[i] = String.fromCharCode(90 - n);
}
}
for(var j=0; j<wordList.length; j++){
changedWord = changedWord + wordList[j];
}

answer = changedWord;
return answer;
}

Expand Down
40 changes: 40 additions & 0 deletions src/problem5.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,45 @@
function problem5(money) {
var answer;
var n1;
var n2 = money;
var change;
var moneyList = [0, 0, 0, 0, 0, 0, 0, 0, 0];
var i = 8;
while(i>=0){
n1 = n2 % 10;
if(i==8){
moneyList[i] = n1;
}
else if(i%2==1){
change = n1;
while(change>=5){
change = change % 5;
moneyList[i-1]++;
}
moneyList[i] = change;
i--;
}
else if(i%2==0){
if(i==0){
moneyList[i] = moneyList[i] + n1;
}
else{
change = n1;
if(change>=2){
while(change>=2){
change = change % 2;
moneyList[i-1]++;
}
}
moneyList[i] = change;
i--;
}
}
n2 = Math.floor(n2 / 10);
i--;
}

answer = moneyList;
return answer;
}

Expand Down
31 changes: 29 additions & 2 deletions src/problem6.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,33 @@
function problem6(forms) {
var answer;
var answer = [];
var info = new Map();
var same;
var sameSet = new Set();
var dup = new Map();
for(const [email, name] of forms) {
info.set(email, name);
}

for(var [email, name] of info){
for (var i=0; i<name.length-1; i++) {
for (var j=2; j<=name.length-i; j++) {
same = name.slice(i, i+j);

if (dup.has(same)) {
sameSet.add(dup.get(same));
sameSet.add(email);
}
else{
dup.set(same, email);
}
}
}
}
for(let email of sameSet){
answer.push(email);
}
answer = answer.sort();
return answer;
}

module.exports = problem6;
module.exports = problem6;
63 changes: 62 additions & 1 deletion src/problem7.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,66 @@
function problem7(user, friends, visitors) {
var answer;
var answer = [];
var userFriends = new Set();
var score = new Map();
var name = [];
for(var i=0; i<friends.length; i++){
if(friends[i][0]==user){
userFriends.add(friends[i][1]);
}
if(friends[i][1]==user){
userFriends.add(friends[i][0]);
}
}

for(var k=0; k<friends.length; k++){
if(userFriends.has(friends[k][0])){
if(friends[k][1]==user){
continue;
}
if(score.has(friends[k][1])){
var n = score.get(friends[k][1]);
score.delete(friends[k][1]);
score.set(friends[k][1], n+=10);
}
else{
score.set(friends[k][1], 10);
}
}

if(userFriends.has(friends[k][1])){
if(friends[k][0]==user){
continue;
}
if(score.has(friends[k][1])){
var n = score.get(friends[k][1]);
score.delete(friends[k][1]);
score.set(friends[k][1], n+=10);
}
else{
score.set(friends[k][1], 10);
}
}
}

for(var j=0; j<visitors.length; j++){
if(userFriends.has(visitors[j])){
continue;
}
if(score.has(visitors[j])){
var n = score.get(visitors[j]);
score.delete(visitors[j]);
score.set(visitors[j], n+=1);
}
else{
score.set(visitors[j], 1);
}
}

name = Array.from(score);
name.sort((a, b) => b[1] - a[1] || a[0].localeCompare(b[0]));
for(var l=0; l<score.size; l++){
answer.push(name[l][0]);
}
return answer;
}

Expand Down