본문 바로가기

verdantjuly/Today I Learned

TIL 20230525

728x90

오늘 목표

TIL 작성

TIL 리뷰

정렬 알고리즘 읽어보기

javascript 문법종합반 3주차

오늘 한 것

TIL 작성

TIL 리뷰

정렬 알고리즘 읽어보기

2주차 숙제 2번 어느정도 해결
javascript 문법종합반 3주차

 

1. 마지막 값 비교

문제

if (array[i] < array[i + 1])

array의 마지막 값을 비교할 수 없다.

i+1이 array.length 를 넘어가기 때문이다.

시도

for (i = 0; i < strings.length; i++) {
    for (j = 0; j < strings.length - 1-i; j++) {

strings.length -1 이전까지만 돌린다. 

i+1은 비교하지 않는다.

참고 자료 : 정렬 알고리즘 - 버블정렬 https://im-developer.tistory.com/133

 

해결

for (k = 0; k < strings.length; k++) {
    for (i = 0; i < strings.length - 1-k; i++) {
        for (j = 0; j < strings.length; j++) {
            arrayN[j] = strings[j].substr(n) 
            // strings의 각 문자열을 인덱스 n부터 자른 것을 arrayN에 담는다.
        }
        if (arrayN[i] > arrayN[i + 1]) { //앞 단어가 더 클 때
            let spin =[]
            spin = strings[i]
            strings[i] = strings[i + 1]
            strings[i + 1] = spin //뒷 단어를 앞으로 당긴다

        }}
    }

알게된 것

for 문을 두 번 돌리고 i값을 j for문에서 빼서 i+1이 비교되지 않게 하기.

 

2. 버블 정렬

알게된 점

임시 변수를 설정하여 넣고 싶은 값을 담고

변수 안의 값들을 이동시킨다.

참고 자료 : 정렬 알고리즘 - 버블정렬 https://im-developer.tistory.com/133

let spin =[]
spin = strings[i]
strings[i] = strings[i + 1]
strings[i + 1] = spi

3. 문자열에서 비교하려는 부분이 같아서 다음 문자를 비교해야 한다면

aabc

aacd

인 경우 aa부분은 같으므로

부분을 나누지 않고

aabc와 aacd를 전체 비교한다. 

 

4. charCodeAt

string.charCodeAt(index)

index에 해당하는 문자의 unicode 값을 리턴


정리

마지막 값 비교 :  for 문을 두 번 돌리고 i값을 j for문에서 빼서 i+1이 비교되지 않게 하기.

버블 정렬: 임시 변수를 설정하여 넣고 싶은 값을 담고, 변수 안의 값들을 이동시킨다.

aa 가 같은 경우 aabc와 aacd를 전체 비교한다. 

string.charCodeAt(index)   index에 해당하는 문자의 unicode 값을 리턴

 

소감

프로그래머스 제출하기에서는 fail 이 나오지만 입출력 예시를 pass 할 수 있는 코드를 작성할 수 있어서 의미깊었다.

뭐든 시간을 투자하면 되는 것 같다. 그 시간을 견뎌내는 게 힘들어서 포기하면 해결할 수 없다.

 

 

'verdantjuly > Today I Learned' 카테고리의 다른 글

TIL 20230527  (0) 2023.05.27
TIL 20230526  (0) 2023.05.26
TIL 20230524  (0) 2023.05.24
TIL 특강 정리  (0) 2023.05.23
TIL 20230523  (0) 2023.05.23