분류 전체보기 344

문자열을 정수로 바꾸기

문제설명 문자열 s를 숫자로 변환한 결과를 반환하는 함수, solution을 완성하세요. 제한조건 s의 길이는 1 이상 5이하입니다. s의 맨앞에는 부호(+, -)가 올 수 있습니다. s는 부호와 숫자로만 이루어져있습니다. s는 "0"으로 시작하지 않습니다. 입력된 값의 부호와 숫자를 판별해 반환해 주면 되는 문제입니다. function solution(s) { var answer = ''; let b = ''; //빈 문자열을 만들어준다. if (s[0]==='-'){ //부호가 -일때 for (i=0; i

두정수사이의합

문제설명 두 정수 a, b가 주어졌을 때 a와 b 사이에 속한 모든 정수의 합을 리턴하는 함수, solution을 완성하세요. 예를 들어 a = 3, b = 5인 경우, 3 + 4 + 5 = 12이므로 12를 리턴합니다. 제한조건 a와 b가 같은 경우는 둘 중 아무 수나 리턴하세요. a와 b는 -10,000,000 이상 10,000,000 이하인 정수입니다. a와 b의 대소관계는 정해져있지 않습니다. function solution(a, b) { var answer = 0; if (a>b) {//만약 입력값중 a가 b보다 크다면 for(let i=b; i

가운데 글자

문제 설명 단어 s의 가운데 글자를 반환하는 함수, solution을 만들어 보세요. 단어의 길이가 짝수라면 가운데 두글자를 반환하면 됩니다. 제한사항 s는 길이가 1 이상, 100이하인 스트링입니다. 위의 입출력 예처럼 홀수라면 가운데 한글자를, 짝수라면 가운데로부터 양 옆 두글자를 반환하면 된다. 인덱스는 0부터 시작하는데, 위의 abcde를 예로 들자면 아래와 같이 인덱스값을 가지고 있다. 인덱스 문자 0 a 1 b 2 c 3 d 4 e function solution(s) {//인덱스는 0부터 시작한다. var answer = ''; let inputLength = s.length//입력된 s의 길이를 inputLength라는 변수에 입력시킨다. let odd = Math.floor(inputLe..

짝수와 홀수

문제 설명 정수 num이 짝수일 경우 "Even"을 반환하고 홀수인 경우 "Odd"를 반환하는 함수, solution을 완성해주세요. 제한 조건 num은 int 범위의 정수입니다. 0은 짝수입니다. function solution(num) { var answer = ''; if (num % 2 === 0) { //입력값이 짝수라면 answer = "Even" //Even을 반환하고 } else { //입력값이 홀수라면 answer = "Odd" //Odd를 반환한다. } return answer; } 쉬운 문제였다. 입력값도 하나만 주어지기때문에 if문 하나만으로 해결이 가능했다. function solution(num) { if (num % 2 === 0) { //입력값이 짝수라면 return "Eve..

직사각형 별찍기

문제 설명 이 문제에는 표준 입력으로 두 개의 정수 n과 m이 주어집니다. 별(*) 문자를 이용해 가로의 길이가 n, 세로의 길이가 m인 직사각형 형태를 출력해보세요. 제한 조건 n과 m은 각각 1000 이하인 자연수입니다. 위의 예시 대로면, data = 5 3으로 들어온다. process.stdin.setEncoding('utf8'); process.stdin.on('data', data => { const n = data.split(" ");//data로 들어온 입력값을 띄어쓰기 기준으로 나눔 const a = Number(n[0])//a값은 한 줄에 몇개의 별이 들어올지에 대한 값 const b = Number(n[1]);//b값은 a값만큼 생긴 별이 몇 줄일지 결정 const row = `${'..

221121 til

오늘은 알고리즘 문제를 주구장창 풀었다. 생각보다 엄청 쉬웠던 문제도 있었고, 이 메소드를 사용해야하나? 싶어 썼더니 풀린 문제도 있었다. 또, 이렇게 이렇게 하면 풀릴거 같은데? 해서 검색 후 mdn에서 사용방법을 찾아 푼 문제도 있었다. ex) 배열의 특정 단어를 찾기 JS 어떤 문제는 풀다가 방법이 떠오르지 않아 답안을 검색한 것도 있었는데... 대부분 그런 것들은 접근 방식이 아예 틀렸던 것들이었다. 예를 들면 대부분의 사람들이 isNaN()을 써서 푸는데 나는 그걸 중첩반복문, 반복문속의 조건문, 중첩 조건문...등 너무 어렵게 접근했던 적도 있었던 것 같다. 물론 그렇게해서 풀면 푸는거겠지만 결국엔 대부분이 그렇게 못풀었다... 내가 조금 생각해서 풀었던 문제들은 대부분 for문이나 if문으로..

1차 공부/TIL 2022.11.21

항해 1주차 풀스택프로젝트 WIL

일단 너무 어려웠다. 웹개발 종합반강의로 들었을때는 '아 ajax가 이거구나', '아 style은 이렇게 설정하는구나', '아 부트스트랩에서 제공하는 코드는 정말 완벽하구나', '뭐야 백엔드 쉽네?' 싶었다. 그런데 풀스택 프로젝트를 하며 정말 나는 강의를 몇번이나 들었음에도, 쉬운것만 배웠던 것임을 알게 되었다. 처음으로 github을 쓰는것 부터 어려웠다. 시작하고 팀장님이 git repo를 만들고 그걸 pull하고... git의 기능을 아직도 완벽히 알았다 하긴 뭐하지만 그래도 프로젝트를 진행하며 pull과 push에 대해 정확히 알게 되었다. merge를 해야한다면 아직도 정신이 아찔해지겠지만, 다행히 프로젝트를 진행하며 내가 pull하지않고 push를 진행해 merge를 해야하는 일은 없었다. ..

1차 공부/WIL 2022.11.20

실습과제

1) 콘솔에 찍힐 b 값을 예상해보고, 어디에서 선언된 “b”가 몇번째 라인에서 호출한 console.log에 찍혔는지, 왜 그런지 설명해보세요. 주석을 풀어보고 오류가 난다면 왜 오류가 나는 지 설명하고 오류를 수정해보세요. let b = 1; function hi () { const a = 1; let b = 100; b++; console.log(a,b); } console.log(b); hi(); console.log(b); 일단 처음 출력될 console.log(b)는 1이다. 두번쨰로 hi()는 1,101이다 세번째로 출력될 console.log(b)는 1이다. hi()의 b값이 다른 이유는 function문의 스코프 안에서 b값이 변한 것이기 때문이다. 나머지 console.log(b)의 b..

호이스팅(hoisting)과 TDZ(temporal dead zone)은 무엇일까?

글쓰기에 앞서 글쓴이는 코딩에 미숙한 사람임을 알립니다. 더 구글링 해보면 더욱 더 자세한 내용이 공식문서 혹은 블로그에 정리 되어 있을 수 있습니다. 스코프 스코프란 변수에 접근할 수 있는 범위를 의미한다. JS에선 전역스코프와 지역스코프가있다. 전역스코프는 말 그대로 모든 곳에서 변수가 선언되어있어 어느곳에서든 접근 할 수 있는 것이고, 지역 스코프는 한정된 공간에 변수가 선언되어있어 한정적으로 변수에대해 접근할 수 있는 것이다. var a = 1//전역 스코프 function print() {//지역(함수)스코프 var a = 111 console.log(a) } print()//111 함수 스코프에 선언된 a는 111이기에 111이 출력됨. console.log(a)//1 console.log가 ..

JavaScript 객체와 불변성이란?

글쓰기에 앞서 글쓴이는 코딩에 미숙한 사람임을 알립니다. 더 구글링 해보면 더욱 더 자세한 내용이 공식문서 혹은 블로그에 정리 되어 있을 수 있습니다. 기본형 데이터와 참조형 데이터 기본형 데이터 : 객체가 아닌 데이터 유형을 말한다. 원시형이라고도 한다. 기본형 데이터로는 숫자형, 문자형, 불린형, null, undefined가 있다. 참조형 데이터 : 기본형 데이터가아닌 모든 것을 의미한다. 참조형 데이터로는 객체, 함수, 배열, 클래스, ... 등 기본형 데이터가 아닌 모든 것이다. 불변 객체를 만드는 방법 일단 불변 객체란 무엇인가? 불변 객체(immutability)란 말 그대로 변하지 않는 객체, 즉 이미 할당된 객체가 변하지 않는 것이다. 기본적으로 const는 변수를 상수로 지정한다. 여기..