inflearn logo
강의

Course

Instructor

Do it! Algorithm Coding Test with C++

알고리즘 코딩테스트 문제풀이 강의 - 9 DNA 비밀번호 (백준 12891)

Resolved

578

xoguszz1238739

3 asked

1

안녕하세요. C++ 강의를 보고 있는데 궁금한게 있어서 질문 드립니다. Add 함수에 myArr[0]++; 와 Remove 함수에 myArr[0]--; 이해가 안갑니다.

그리고 슬라이딩 윈도우 처리부분에 int j = i - P; 이 부분에 대해서 자세히 설명 부탁드립니다. i,P랑 같은 값인데 빼면 0이고 그 다음은 i 값이 증가해서 음수가 되는데 어떻게 처리가 되는 부분인지 이해가 안갑니다.

c++ 코딩-테스트 알고리즘

Answer 1

0

harucoding

안녕하세요. 유튜브에 댓글을 달아 놓았는데 혹시 못 보셨을 수도 있을 것 같아 댓글 내용으로 답변을 대신합니다. ^^ 즐거운 하루 되세요 :)

해당 문제에서 DNS 문자열은 A C G T 라고 하였습니다. 여기에서 myArr[0]은 A의 개수가 현재 부분문자열에서 몇개인지 저장하는 곳입니다. 때문에 myArr[0]++은 현재 부분문자열에 A라는 값이 1개 더 추가되었으니 myArr[0]의 값을 1 증가시키세요 라는 뜻입니다. 반대로 myArr[0]--는 현재 부분문자열에 A라는 값이 1개 빠졌으니 myArr[0]의 값을 하나 감소 시키세요 라는 뜻입니다. int j= i - P 부분은 최초 i는 for문에서 P이기 때문에 j = 0, i = P가 됩니다. 즉 j는 윈도우가 이동하면서 제거되는 위치, i는 새롭게 들어오는 위치가 되는 것입니다. i값이 증가하게 되면 j의 값은 i - P 이기 때문에 음수가 되는 것이 아니고 1씩 증가하게 됩니다. i = P , j = 0 i = P + 1 , j = 1 i = P + 2, j = 2 이렇게 오른쪽으로 이동하는 느낌이 된다고 생각해주시면 좋을 것 같습니다. 도움이 되셨으면 좋겠습니다. 감사합니다. 즐거운 하루되세요 :)

코딩 살구 클럽 Python 지원 가능 여부

0

30

1

살구클럽 아이디 없음 문제

0

33

1

1-O 코딩살구클럽 채점관련 질문

0

33

2

히든 테스트 케이스가 사라졌습니다

0

29

1

38번 문제 보기 3,4번

1

25

3

14번 문제

1

30

2

42. [세그먼트 트리 실전 문제] 구간 합 구하기3 (백준 2042)

0

70

1

10986번 질문 있습니다!

0

49

0

LCA 빠르게 찾기 - 트리의 높이에 따른 k값 질문

0

128

0

백준 1377 질문있습니다

0

221

1

백준 1722 교재 81 질문

0

337

1

백준11505, 교재 73번

0

285

1

백주 1456번

0

205

1

백준 1325, 교재 47번 문제 질문입니다.

0

363

1

백준 11404 플로이드 문제 질문있습니다.

0

262

1

문제 85번 질문드립니다

0

326

1

백준 13023 질문있습니다.

0

210

1

문제 8번 질문드립니

0

311

1

백준 1876여행 유니온 파인드 질문있습니다.

0

245

1

백준 2251 C++ 질문 있습니다.

0

403

2

퀵정렬 질문

3

295

1

i==k일떄 i++안해도되지않나요

0

439

1

알고리즘 코딩테스트 문제풀이 강의 - 14 절댓값 힙 구현하기 (백준 11286)

0

557

1

C++은 실전문제에 대한 강의가 없나요? 자바나 파이썬은 있는데 없는거 같아서요.

2

599

2