JavaScript

    [프로그래머스 Level 1] 2022 KAKAO BLIND RECRUITMENT : 신고 결과 받기

    신입사원 무지는 게시판 불량 이용자를 신고하고 처리 결과를 메일로 발송하는 시스템을 개발하려 합니다. 무지가 개발하려는 시스템은 다음과 같습니다. 각 유저는 한 번에 한 명의 유저를 신고할 수 있습니다. 신고 횟수에 제한은 없습니다. 서로 다른 유저를 계속해서 신고할 수 있습니다. 한 유저를 여러 번 신고할 수도 있지만, 동일한 유저에 대한 신고 횟수는 1회로 처리됩니다. k번 이상 신고된 유저는 게시판 이용이 정지되며, 해당 유저를 신고한 모든 유저에게 정지 사실을 메일로 발송합니다. 유저가 신고한 모든 내용을 취합하여 마지막에 한꺼번에 게시판 이용 정지를 시키면서 정지 메일을 발송합니다. 다음은 전체 유저 목록이 ["muzi", "frodo", "apeach", "neo"]이고, k = 2(즉, 2번..

    [프로그래머스 Level 1] 달리기 경주

    얀에서는 매년 달리기 경주가 열립니다. 해설진들은 선수들이 자기 바로 앞의 선수를 추월할 때 추월한 선수의 이름을 부릅니다. 예를 들어 1등부터 3등까지 "mumu", "soe", "poe" 선수들이 순서대로 달리고 있을 때, 해설진이 "soe"선수를 불렀다면 2등인 "soe" 선수가 1등인 "mumu" 선수를 추월했다는 것입니다. 즉 "soe" 선수가 1등, "mumu" 선수가 2등으로 바뀝니다. 선수들의 이름이 1등부터 현재 등수 순서대로 담긴 문자열 배열 players와 해설진이 부른 이름을 담은 문자열 배열 callings가 매개변수로 주어질 때, 경주가 끝났을 때 선수들의 이름을 1등부터 등수 순서대로 배열에 담아 return 하는 solution 함수를 완성해주세요. 제한사항 5 ≤ playe..

    [프로그래머스 Level 1] 바탕화면 정리

    [프로그래머스 Level 1] 바탕화면 정리

    코딩테스트를 준비하는 머쓱이는 프로그래머스에서 문제를 풀고 나중에 다시 코드를 보면서 공부하려고 작성한 코드를 컴퓨터 바탕화면에 아무 위치에나 저장해 둡니다. 저장한 코드가 많아지면서 머쓱이는 본인의 컴퓨터 바탕화면이 너무 지저분하다고 생각했습니다. 프로그래머스에서 작성했던 코드는 그 문제에 가서 다시 볼 수 있기 때문에 저장해 둔 파일들을 전부 삭제하기로 했습니다. 컴퓨터 바탕화면은 각 칸이 정사각형인 격자판입니다. 이때 컴퓨터 바탕화면의 상태를 나타낸 문자열 배열 wallpaper가 주어집니다. 파일들은 바탕화면의 격자칸에 위치하고 바탕화면의 격자점들은 바탕화면의 가장 왼쪽 위를 (0, 0)으로 시작해 (세로 좌표, 가로 좌표)로 표현합니다. 빈칸은 ".", 파일이 있는 칸은 "#"의 값을 가집니다...

    [프로그래머스 Level 1] 추억 점수

    사진들을 보며 추억에 젖어 있던 루는 사진별로 추억 점수를 매길려고 합니다. 사진 속에 나오는 인물의 그리움 점수를 모두 합산한 값이 해당 사진의 추억 점수가 됩니다. 예를 들어 사진 속 인물의 이름이 ["may", "kein", "kain"]이고 각 인물의 그리움 점수가 [5점, 10점, 1점]일 때 해당 사진의 추억 점수는 16(5 + 10 + 1)점이 됩니다. 다른 사진 속 인물의 이름이 ["kali", "mari", "don", "tony"]이고 ["kali", "mari", "don"]의 그리움 점수가 각각 [11점, 1점, 55점]]이고, "tony"는 그리움 점수가 없을 때, 이 사진의 추억 점수는 3명의 그리움 점수를 합한 67(11 + 1 + 55)점입니다. 그리워하는 사람의 이름을 담은..

    JavaScript 정리 : this (2) 화살표함수에서의 this

    여기서 잠깐🔔 화살표 함수의 특징 생성자로 사용할 수 없음 스스로의 this, argument를 가지지 않음 return하지 않아도 값이 반환됨 (본문이 여러 줄로 이루어진 경우는 제외) 화살표 함수의 this는? this = 함수가 정의된 스코프의 this를 가리킴 (생성될 때 this가 결정되며, 화살표함수가 어떻게 사용/호출되든 this는 변하지 않는다.) const obj = { name: '철수', sayName: function() { const innerMethod = () => { return `${this.name}, 안녕!`; }; console.log(innerMethod()); } }; obj.sayName(); // 철수, 안녕! → 그러므로 객체의 메소드는 화살표 함수로 정의하지..

    JavaScript 정리 : this (1) 상황별 this

    JavaScript에서 this가 가리키는 객체는 정해져 있지 않으며, 호출될 때 결정된다. 아래처럼 다양한 상황에서 this가 어떤 객체를 가리키게 되는지 알아보자. (화살표함수에서의 this는 다음 글에서 정리한다.) 목차 전역 컨텍스트 (Global scope) & 함수 호출 객체에 속한 메서드 호출 객체에 속한 메서드의 내부 함수 호출 함수를 메서드로 호출 (call, apply, bind) 생성자 함수 호출 클래스 이벤트 핸들러 "use strict" 모드 1. 전역 컨텍스트 (Global scope) & 함수 호출 this = 전역 객체 (브라우저에서는 window) console.log(this); // 전역 객체 (브라우저에서는 window) function myFunction() { co..