7/15 2주차 4~6번 문제풀이

강인호·2022년 7월 19일
0

알고리즘 문제풀이

목록 보기
2/39

4번문제

처음에는 match includes등등 별의별 방법을 써보다가 로직까지는 짰는데 중복인자를 다 지워버려서 중복의 경우에 해결이 안되어서 고민을 하다가 포함하는지 가 아닌 각각의 인자자체를 비교해보는 식으로 첫번째의 i번째 인덱스와 두번째의 i번째 인덱스가 같지않을 경우에 그 값을 리턴하는 방식으로 짜보았다.

최종코드는

5번문제

처음에 접근은 0번째부터 짝수번째 인덱스를 대문자로 변환하는 식으로 생각을 했고

공백을 기준으로 각 단어의 시작마다 초기화가 되기 때문에 처음에 일단 받은 문자열을

.split(" ")으로 쪼갰다. 쪼개고 나니 ["try","hello","world"]가 리턴되었는데 여기서 내가 접근한 방식은

리스트를 a라고 치면 a의0번째 인덱스는 "try", a의 0번째 인덱스의 0번째 인덱스는 "t" 이런식으로 접근을 해서 for 문으로 i가 1씩 커질때마다 각 단어를 지정하게 설정하고 각 단어마다 for문으로 각각의 알파벳을 지정하게끔 코드를 짜보았다.

사진의 주석처리를 제외한 부분이 처음에 짜본 코드인데 자꾸 저상태에서 값을 찍어보면 왜인지 정의되지 않았다던가 Cannot read property '0' of undefined하는 오류가 계속 뜨는것이다.

그래서 계속 시간잡아먹으면서 고민을 하던중 그냥 처음부터 다 지우고 새롭게 차근차근히 한줄한줄 다시 짜보았고 이번에는 짝수번째는 대문자변환 외에 else를 추가해서 홀수번째는 소문자로 변환하게끔 매 알파벳마다 지정을 해보았고 그 결과

"TrYHeLlOWoRlD" 까지는 리턴하는데 성공을 했다.

하지만 우리가 얻어야 하는값은 단어마다 공백이 있는"TrY HeLlO WoRlD"이기 때문에 공백을 어떤식으로 삽입할까 고민하다가 각 단어의 변환이 끝날때마다, 즉 i 값이 커질때마다 answer에 공백을 추가해보면 어떨까 하고 첫번째 for문에 추가를 하려다가 그러면 맨처음에 공백이 들어갈것 같아서 if 문으로 i>0일때, 즉 첫번째 단어가 끝나고 나서부터 단어마다 공백을 삽입하게끔 짜보았다. 그래서 최종코드는

6번문제

문제를 보고 처음 든 생각은 for문으로 각 자리의 인덱스를 더하면 되지 않을까 라고 생각해서 짜보았는데 실행조차 되지 않았고

두번째로 든 생각은 split('')을 적용하면 모든문자든 숫자든 하나하나 쪼개진다는걸 앞의 문제를 풀면서 알아서 쪼갠후에 각 자릿수를 더하는 방식으로 진행해보았다.

그런데 숫자를 더하지 않고 "1","2","3" 이런식으로 더해져서 찾아보니 split으로 쪼개버리면 문자열의 형태로 쪼개지기 때문에 숫자형으로 변환을 해줘야 한다는걸 알았고,

해당 함수가 문자열을 숫자열로 변환해준다는 함수길래 긁어와서 적용했다.

적용한 후 a=0 을 선언하고 적용된 함수를 for문을 돌려서 각 자리의 숫자마다 a에 더하는식으로 코드를 짰다. 최종코드는

0개의 댓글