강의

멘토링

커뮤니티

Cộng đồng Hỏi & Đáp của Inflearn

Hình ảnh hồ sơ của hanul952100654
hanul952100654

câu hỏi đã được viết

Giới thiệu về giải quyết vấn đề thuật toán JavaScript (chuẩn bị cho bài kiểm tra mã hóa)

4. Khoảng cách văn bản

P값이 0이어도 괜찮지 않나요?

Viết

·

309

4

강의에서 P를 문자열 최대길이보다 크게 잡으신 이유를 잘 이해하지 못했습니다. 0으로 해도 문제가 풀리는데... 0으로 해도 무방하지 않나요?

javascript코테 준비 같이 해요!

Câu trả lời 3

3

hanul952100654님의 프로필 이미지
hanul952100654
Người đặt câu hỏi

예를 들어,

p = 1일 때, ttt eachermode 를 하면 맨 앞 t가 2가되어 오류

p = 2일 때, tttt eachermode 를 하면 맨 앞 t가 3이되어 오류

p = 3일 때, ttttt eachermode 를 하면 맨 앞 t가 4가되어 오류

(.... 중략)

p = 88일 때, t...tt(t 90개) eachermode 를 하면 맨 앞 t가 100이 되어 오류

p = 89일 때, t...tt(t 91개) eachermode 를 하면 총 101자리가 되므로 p = 89일 때, t...tt(t 90개) eachermode 밖에 안되고(최대 문자열 길이는 100) 이 경우, 

왼쪽에서 오른쪽으로
t...tt(90개) eachermode
90 91 ... xx 0 1 2 3 0 1 2 3 4 0

오른쪽에서 왼쪽으로
t...tt(90개) eachermode
90 89 ... 1 0 1 2 1 0 1 2 2 1 0

이렇게 되어,
만약, 주어진 문자열의 길이가 N 일 때, P값이 주어진 문자열의 길이 N보다 작은 경우, 정답에 오류가 있을 수 있으며, P 값을 최대한 큰 값으로 설정하면 오류없이 정답을 맞출 수 있다.

2

hanul952100654님의 프로필 이미지
hanul952100654
Người đặt câu hỏi

p = 0 일 때,

왼쪽에서 오른쪽으로
tteachermode
120123012340

오른쪽에서 왼쪽으로
tteachermode
110121012210 

맨 앞에있는 t가 2가 되어야 하지만 1이 됩니다.

p = 100 (최대 문자열의 길이) 으로 설정했을 때,

왼쪽에서 오른쪽으로
tteachermode
101 102 0 1 2 3 0 1 2 3 4 0

오른쪽에서 왼쪽으로
tteachermode
2 1 0 1 2 1 0 1 2 2 1 0

큰 숫자로 초기화 했을 땐 값이 제대로 나타납니다

이를 통해 알게 된 사실은..
만약, 주어진 문자열의 길이가 n 일때, p값을  n > p 범위로 설정하면 두 번째 루프를 돌 때(오른쪽에서 왼쪽으로) 답에 오류가 생길 수 있습니다.

2

codingcamp님의 프로필 이미지
codingcamp
Người chia sẻ kiến thức

안녕하세요^^

아래 입력으로 해보세요. 안되는 이유와 왜 p를 큰 숫자로 초기화해야 하는지 알게 될 겁니다.

let str="tteachermode";
console.log(solution(str, 'e'));
hanul952100654님의 프로필 이미지
hanul952100654
Người đặt câu hỏi

감사합니다!!

Hình ảnh hồ sơ của hanul952100654
hanul952100654

câu hỏi đã được viết

Đặt câu hỏi