P값이 0이어도 괜찮지 않나요?
318
5 asked
강의에서 P를 문자열 최대길이보다 크게 잡으신 이유를 잘 이해하지 못했습니다. 0으로 해도 문제가 풀리는데... 0으로 해도 무방하지 않나요?
Answer 3
3
예를 들어,
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
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
안녕하세요^^
아래 입력으로 해보세요. 안되는 이유와 왜 p를 큰 숫자로 초기화해야 하는지 알게 될 겁니다.
continue를 사용하는 이유
0
78
2
정렬 가능 여부 판단하기
0
64
2
알고리즘 학습법 관련해서 질문드립니다.
0
85
1
코드 리뷰 부탁드립니다!
0
90
1
indexOf를 사용해서 풀어보았습니다 !!
0
68
1
저는 이런식으로 구현 해보았습니다 !!
0
64
1
12,13,14 강의 소리만 나오고 검은 화면입니다
0
99
3
반복문 최소화하고 indexOf 사용해서 풀어봤습니다
0
63
1
영상 보기 전에 직접 풀어봤습니다.
0
74
1
섹션1의 17번문제 이 풀이로 풀어도 될까요?
0
133
2
정규표현식으로 처리해도 상관없나요 ?
0
120
2
3칸씩 건너뛸 수 있을 경우
0
125
2
강의에 대해 질문있습니다.
0
135
2
Object와 Set을 이용해 풀어봤습니다.
0
117
2
이렇게 해도 되나요?
0
102
2
선생님 중복 단어나 중복관련 문제들은 set을 이용하면 좋을것 같습니다.
0
145
2
이렇게 풀어도 괜찮을까요?
0
138
1
이렇게 풀어도 괜찮을까요?
0
112
1
모든 아나그램 찾기에서 시간복잡도
0
98
1
코드리뷰 부탁드립니다.
0
130
1
for loop 탈출은 return 문으로 해도 되지 않나요?
0
133
1
투포인트알고리즘으로 풀어봤습니다.
0
142
0
코드 리뷰 부탁드립니다.
0
119
1
코드 맞게 작성한 거 아닌가여??
0
146
1

