문제
류는 파동권을 첫날부터 3발을 쓸 수 있다.
그리고 이튿날부터 파동권을 하루마다 2발씩 더 쓸 수 있다.
5일동안 류가 쓴 파동권의 총 횟수는?
답: 3 5 7 9 11 (35발)
제가 방금 개념 보고 짜본 코드는 이렇습니다
let pa = 3;
for(let n = 1; n<=5; n=n+1) {
pa = pa + 2*n;
}
그런데 자꾸 원하는 값이 35가 나오지 않더군요
첫날은 3발만 쏘니까 pa 마지막에 -2도 붙혀보고 했는데 숫자가 +2씩 일정하게 늘어나는 것이 아니라 4 , 6, 8, 이렇게 늘어나서...
혼자 50분정도 이리저리 숫자 만져보다가 페어와 함께하는 공부스케쥴이 잡혀있어서 더 이상 여기에 신경 쓰기가 지금은 시간이 없다보니
질문 올려봅니다...
첫날 3발쏘는건 pa=3에서 쏜거니까 n이 2부터 시작해야하지 되고, pa=pa+2n로직도 틀렸음.
let pa = 0; for (let i = 3; i < 3 + 2 * 5; i = i + 2) pa +=i;
첫행의 let pa = 0; 값을 설정하셨던데 0이라는 숫자가 어떤 과정에서 나왔는지 답변해주실 수 있나요? 저는 3발부터 시작이라 3으로 했는데, 밑에 반복문에서 i를 3으로 하신걸 보면 그쪽에서 디폴트 값으로 잡으신 것처럼 보이시네요...
첫날생각을 해보삼. 반복되기전에 pa가 이미 3이니까 n이 1일때(첫날일때) pa = 3 + 2 즉 5가되는거임
저는 그냥 단순하게 파동권을 하루에 첫날부터 3발 쏘니 pa=3으로 생각했는데 식을 만들고 나타낼 때는 그걸 다른 곳에다가 대입해야 하는거군요... 지금 구문은 무슨 의미인지 어렴풋이 느끼지만 다른 문제로 대입하면 또 얼탈 것 같습니다 ㅋㅋ...
pa=3으로 두지만 첫날에는 2발씩 증가하는게 없으니 for (let n = 0; n < 5; n++) { pa = 3 + 2n; } 하시면 총 5번의 루프(n이 0 1 2 3 4 일때)를 돌지만 3 5 7 9 11이 나옵니다. 첫날에는 두발씩 증가가 없으니 n을 1부터 돌리시면 첫날부터 5가되어버려용
제가 3일간 배운 것에서는 ++ 연산자를 전혀쓰지 않아서 저걸 쓸 생각도 못해봤네요... 검색해보니까 n++이라고 하면 n을 +1씩 증가시킨다라는 것처럼 보이는데 n=n+1식과 차이점이 있는걸까요? 둘다 차례대로 1씩 증가하잖아요 실제로 적어주신 n++ 대신 n=n+1로 바꿔 넣으니 똑같이 구현이 되네요
n++ 과 n=n+1, n+=1 이 세가지는 반복문을 돌 때 동일한 것입니다. 1씩 증한다는 뜻이고, 대부분의 포문루프 안에는 n++을 많이 써용(짧아서).
감사합니다. 저는 인터넷 프엔 로드맵만 보고 html과 css만 먼저 공부하고 붓캠 합격해서 들어갔는데 자바부터 가르치는데다 개념은 간단히 알려주고 바로 실전 문제풀이로 들어가니까 당황스럽고 진도 쫓아가기 바쁜 상황이네요 ㅎㅎ
잘 가르쳐주고 있네요. 3일차시면 당장 컴퓨터에 내리는 코드가 어떻게 돌아가는지 체감해보는게 가장 좋은 방법이라서 지금처럼 계속 머리박으면서 시간을 갈아넣는게 가장 좋은 방법이라고 생각합니다. 생각했던 로직과 다르다면 for문 안에 console.log(pa) 정도 찍어서 현재의 pa 가 몇인지 체크해볼 수도 있으니 출력을 자주 해보세요.