내가 선택한 Node.js 조로 재편성되었다.
그리고 오늘 아침미팅 내용
앞으로의 스케쥴
> 알고리즘 기초 (1주) 2021-11-08 시작
> 주특기 기본주차 (1주)
> 심화 (2주)
(총 4주간 기본기)
>백&프론트 나눠서 프로젝트 진행 (1주)
>백&프론트 나눠서 프로젝트 진행 (1주)
>실전프로젝트?
순서
1. 알고리즘 이해
2. 오늘의 알고리즘 문제 remind 및 기록
3. javascript 뽀개기 강의내용
4. 배운것 / 느낀것 / 내게 아쉬웠던 것 / 공부해야 할 것
알고리즘
내 생각
: 여튼 이걸 알고리즘?이라고 부르는 이유가 뭐지
내가 이 코딩을 푸는? 디코딩을 하는 과정을 알아가라는건가?
사고과정을 알아가라는 건가?
외부자료에서 발췌
프로그래밍에서 알고리즘은 input 값을 통해 output 값을 얻기 위한 계산 과정을 의미한다. 이러한 문제를 해결할 때, 정확하고 효율적으로 결과값을 얻기 위해서 알고리즘이 필요하다.
알고리즘의 조건
좋은 알고리즘을 만들기 위해서는 다음과 같은 조건을 충족시켜야 한다.
- 입력 : 외부에서 제공되는 자료가 0개 이상 존재한다.
- 출력 : 적어도 2개 이상의 서로 다른 결과를 내어야 한다. 즉 모든 입력에 하나의 출력- 이 나오면 안 된다.
- 명확성 : 수행 과정은 명확하고 모호하지 않은 명령어로 구성되어야 한다.
- 유한성 : 유한 번의 명령어를 수행 후 유한 시간 내에 종료한다.
- 효율성 : 모든 과정은 명백하게 실행 가능(검증 가능)한 것이어야 한다
계획 :하루에 8문제를 풀어야 하는데
한문제당 30분 잡아야 할듯. 안되면 나머지 30분동안은 풀이라도 조금 찾아보면서 풀기
조 모임 및 발표는 13시, 19시에 진행한다.
오늘 풀었던 문제 Remind
1번 사갹형 별 찍기 (실패)
사고회로 : 일단 난 못풀었음.
process.stdin.setEncoding('utf8');
process.stdin.on('data', data => {
const n = data.split(" ");
이 3줄의 의미가 잘 이해가 안감.
process.stdin.setEncoding('utf8');
process.stdin.on('data', data => {
const n = data.split(" ");
const a = Number(n[0]), b = Number(n[1]);
console.log(a);//알지?
console.log(b);//알면서 });
process.stdin.setEncoding('utf8');
process.stdin.on('data', data => { //입력받은 숫자를 'data에 받는다'
const n = data.split(" "); // data(입력받은 숫자)를 배열로 변경
const a = Number(n[0]), b = Number(n[1]); //a는 한줄에대한 별의 갯수, b는 몇줄 출력
for(let i=0; i<b; i++) { //i을 선언해주고 몇줄(b)만큼 반복
let str = ""; //출력할 변수 선언
for(let j=0; j<a; j++){ // j선언후 별을 한줄에 몇개 찍을지 반복
str = str + "*" //출력할 변수에 별을 담는다
}
console.log(str) // 출력
}
});
봐도 잘 이해안감.
2번 짝수와 홀수 (성공)
사고회로 : 이건 쉬워서 짝수 홀수 판별 해주는 것이 중요 . ===사용하는 것도 가능
풀이과정 :
function solution(num) {
if (num % 2 == 0) { //해당 num에 넣은 값이 홀수, 짝수 판별
var answer = 'Even' //짝수일 때는 Even 출력
} else {
var answer = 'Odd' //홀수일 때는 Odd 출력
}
return answer
}
3번 가운데 글자 가져오기(성공)
사고회로 :
우선 글자 길이 구한담에 홀수 짝수 나누고, 출력할 값 위치 나타내는게 중요했음
풀이과정 :
function solution(s) {
var sl = s.length // 길이 구하기
var slh = sl*0.5 // 위치 추적할 때 사용하려고
var slhMinus = slh - 0.5 // 홀수의 경우 반나누면 0.5뜨니까 사용해야함
if (sl % 2 != 0) { // 길이구한것으로 홀수짝수 판별
var ctr = s.substr(slhMinus, 1) // 홀수일 때 : 아까 0.5빼놓은거 넣고 1자리만 출력할거니까 1 넣음
return ctr
} else {
var ctr = s.substr(slh-1, 2)
return ctr
}
}
substr함수
var a = "1234567890" ;
var abc = a.substr(2, 5);
> 출력 abc : 34567
substr함수는 substr(시작인덱스, 길이) 형식으로 사용하며 위 예제를 보면 쉽게 이해할 수 있다.
substring함수
var a = "1234567890";
var abc = a.substring(2, 5);
> 출력 abc : 3456
substring함수는 substr함수와 비슷해보이지만 약간 형식이 다르다.
substring(시작인덱스, 종료인덱스) 형식으로 사용되며 위 예제를 보면 쉽게 이해할 수 있을 것이다.
https://sesok808.tistory.com/600
4번 두 정수 사이의 합 (실패)
사고회로 :
우선 이사잇값들을 나타내는 걸 알아야함 // 반복문 돌리면 돼
그 숫자를 포함하고 사이에 있는 값들을 모두 sum한다. // 반복문돌려서 증감연산자? 사용
그값을 return으로함
풀이과정 :
function solution(a, b) {
let answer = 0; // 이따가 값에 더해주기 위해..?
var min = Math.min(a,b) // Math.min(a,b) : 값들 중 가장 작은 값을 나타냄
var max = Math.max(a,b) // Math.max(a,b) : 값들 중 가장 큰 값을 나타냄
for (let i = min; i <= max; i++) { // 반복문돌리고
answer += i; // 아까 0해놓은것에서 i 돌아간거 더하기
}
return answer;
}
javascript 뽀개기
공부정리에 따로 저장하겠음!
배운것 : 위에 썼음
느낀 것 :
오늘 집중이 잘됐음.
걍 잠잘자고 어제 WIL쓰고 멘탈이 좋아졌음
생각정리가 인생에 진짜 도움이 되긴 하나봄 (특정사람 한정일수도)
그래서 TIL을 간단하게라도 써보려고 함.
팀원들과 있을 때는 당연하지만, 혼자 공부할 때도 혼자 말하고 되뇌이면서 하는게 좋음
생각 정리에 도움 됨 .
그리고 오늘처럼 메모장 필기 잘해서 여기로 퍼오자.
내게 아쉬웠던 것 :
다른 풀이 보니까 더 간단하고 짧은 함수가 많음
배우면서 줄일 수 있는 부분 줄여갈 것.
공부필요한 것 : (공부해서 따로 올리기?)
Math 관련 함수 공부 필요할 듯
연산 관련에서 많이 나오나벼 >> 따로 정리하자
ex)
Math.floor() : 반내림
Math.min() : 값들 중 가장 작은 값
Math.max() : 값들 중 가장 큰 값 등등
const, var, let 의 차이를 알아보자 !!
'그냥 '하기
'TIL & WIL' 카테고리의 다른 글
TIL 생활코딩 web2 javascript (0) | 2021.12.01 |
---|---|
WIL 4week (작성중) (0) | 2021.12.01 |
WIL 항해 99 3주차 (미완) (0) | 2021.11.21 |
WIL 2주차 기록 (0) | 2021.11.14 |
WIL(1) 항해99 1주차 (0) | 2021.11.07 |