
이번 주는 문제 분량을 늘리기로 했어요.
이번 주부터는 문제량이 많기 때문에 모든 코드를 velog에 적지 않을 생각이에 요.
대신! 진행사항 밑에 코드를 모아둔 github 주소를 남길겁니당!
🔥🔥🔥
두 수를 비교한 결과를 출력하는 문제시험 점수를 성적으로 바꾸는 문제윤년을 판별하는 문제점이 어느 사분면에 있는지 알아내는 문제시간 계산 문제범위가 더 넓은 시간 계산 문제조건에 따라 상금을 계산하는 문제구구단을 출력하는 문제A+B를 여러 번 출력하는 문제1부터 N까지의 합을 구하는 문제. 물론 반복문 없이 풀 수도 있습니다.💸코딩 공부를 잘 하여 이렇게 long long long long...을 칠판에 적는 일이 없도록 합시다.빠르게 입력받고 출력하는 문제A+B를 조금 더 아름답게 출력하는 문제A+B를 바로 위 문제보다 아름답게 출력하는 문제별을 찍는 문제 1별을 찍는 문제 20 0이 들어올 때까지 A+B를 출력하는 문제입력이 끝날 때까지 A+B를 출력하는 문제. EOF에 대해 알아 보세요.
- 입력값 쓰임에 따라 분리하여 사용하는 코드
저번 주 입력값
한 줄 + 띄어쓰기 구분이 메인30 20이번 주 입력값
여러 줄 + 줄마다 입력값 쓰임이 다름이 메인백준 25304 260000 4 20000 5 30000 2 10000 6 5000 8const fs = require("fs"); const input = fs .readFileSync("/dev/stdin") .toString() .trim() .split("\n"); const extendedPrice = parseInt(input[0]); const numberOfTypes = parseInt(input[1]); let resultPrice = 0; for (let i = 2; i < numberOfTypes + 2; i++) { const valueAndQuantity = input[i].split(" ").map(Number); const value = valueAndQuantity[0]; const quantity = valueAndQuantity[1]; resultPrice += value * quantity; } if (extendedPrice == resultPrice) { console.log("Yes"); } else { console.log("No"); }
- 조건문 - 필요 없는 조건?
조건문 조건의 최적을 찾지 못했다.
이유 1. 들어 필요 없는 조건을 넣었다.
이유 2. 조건에서 제일 중요하게 여겨야 하는 기둥을 찾지 못했다.// 예시 1 // 백준 2480 // 문제점: one, two, three가 같을 때의 조건문 if (one == two && one == three && two == three) { result = 10000 + one * 1000; } // 해결점: && 그리고를 이해해야 함 if (one == two && two == three) { result = 10000 + one * 1000; }// 예시 2 // 백준 2884 // 문제점: M이 45 기준으로 조건문을 분명하게 나누지 않아서 가독성이 떨어짐 if (M < 45 && H == 0) { H = 23; M = M + 15; } else if (M < 45) { H = H - 1; M = M + 15; } else { M = M - 45; } // 해결점: M이 45미만일 때와 아닐 때로 크게 나눔 🌟핵심포인트! // 스터디원이 달아준 코드리뷰 참고함 if (M < 45) { if (H == 0) { H = 23; M = M + 15; } else { H = H - 1; M = M + 15; } } else { M = M - 45; }
1. 변수에 값을 할당하고 사용할 때 혹은 값을 바로 사용할 때
스터디원은 변수에 담는 것보다 바로 console.log 출력문에 사용하는 걸 선호했음일회적으로 사용하는 값은 코드 길이를 줄여 좋음 하지만, `여러 번 사용하는 값이나`, `의미 전달하는 값은` let, const 키워드를 사용해서 적절한 이름에 할당하는 것이 좋음
- 주어진 문제 표면에서 조건을 찾아서 해결할 수 있을 수 있지만,
자바스크립트 문법을 이용한 조건으로 해결 가능// 기존 코드 // 백준 10952 const fs = require("fs"); const input = fs .readFileSync("/dev/stdin") .toString() .trim() .split("\n"); let i = 0; while (i >= 0) { if (input[i] == "0 0") { break; } const testCase = input[i].split(" ").map(Number); const A = testCase[0]; const B = testCase[1]; console.log(A + B); i++; }// 자바스크립트 length 활용 const fs = require("fs"); const input = fs.readFileSync("/dev/stdin").toString().trim().split("\n"); let i = 0; while (i < input.length - 1 ) { const testCase = input[i].split(" ").map(Number); const A = testCase[0]; const B = testCase[1]; console.log(A + B); i++ }
🤓 자바스크립트 문제를 풀면서
저번 주보다는 난이도도 올라갔고 문제 수도 많다 보니 시간을 더 할애했다. 또 저번 주와 다른 점은 해결 방법이 다양할 수 있겠다라는 느낌을 받았다. 앞으로 자바스크립트 문법을 잘 활용하고 변수 이름을 적절하게 지어 가독성이 좋은 해결 코드를 작성하고 싶다.
🙋🏻♀️ 스터디원 코드 리뷰를 받으면서
조건문 활용해서 더 나은 방향을 제시해줘서 원래 나는 풀면 넘기자 마인드가 강한데 더 나은 코드로 해결해야됨을 다시 자각했다. 감사합니당😊😊😊😊😊
🙋🏻♀️ 스터디원 코드 리뷰를 하면서
'이 값은 변수에 할당하면 더 좋을 것 같은데?' '이 출력문은 백틱을 활용하면 쉽게 될 것 같은데?' 라고 생각하는 저를 칭찬합니다! ㅎㅎㅋㅋㅋ
문제 수가 많아질수록 한 문제에 대한 애정과 집중이 사라지는 걸 느꼈다.
하지만, 어려운 문제들이 아니라 week3 문제 수를 늘리려고 한다!
백준 4, 5, 6 단계를 풀 것이다.