카테고리 없음

24/4/4 알고리즘 (3)

한지지우우 2024. 4. 9. 22:03

JadenCase 문자열 만들기

//내 풀이

//띄어쓰기 단위로 배열로 만들고 map을  돌린다. 각 item에 대해서 도 배열로 만들어 map을 돌리는데 idx가 0이면 

//대문자로 만들고 나머지는 소문자로 만든다. 다시 문자열로 돌리고 반환해주고 전체 배열을 join에 띄어쓰기를 넣어서

//반환하면 끝

다른풀이

//오 charAt으로 문자열 첫 인덱스에 해당하는애에다 다머지 잘라낸애들을 더하는 방식 좋다. 굳이 이중 반복문 

//필요 없네 흐음....

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

최솟값 만들기

내풀이

//뭐 그냥 두배열 최대랑 최소 곱하고 곱해나가고 최소랑 최대 곱하면 될것 같았음 ㅋ

//그래서 하나는 오름차순 하나는 내림차순으로 하고 같은 인덱스끼리 곱해서 축적해서 반환

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

올바른 괄호

내풀이

// s의 길이만큼 반복문을 돌린다. temp에 일시적으로 (를 쌓는다고 생각한다. 그렇게 '('를 만나면
//temp를 하나씩 축적해주고 ')'를 만나면 하나씩 temp를 줄여준다.

//그런데 temp에 열린 괄호가 있지도 않은데 닫는 괄호가 나오면 틀린거니까 곧바로 false를 반환한다.

//포문을 전부 돌았을때 temp가 0이라면 제대로 열고 닫혔다는 이미이니까 true를 반환하고

//temp가 남아있다면 false를 반환한다.

다른풀이

//역시 반복문을 돈다. cum에 하나씩 요소가 무엇이냐에 따라 다르게 쌓아준다. 이제 반복문의 밑부분에

//cum이 0이하인지 확인해서 닫힌괄호가 먼저 나온경우 역시 false를 리턴한다.

//이하동문
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

이진 변환 반복하기

내풀이

//answer 형태를 먼저 초기화해서 잡아준다.

//while문은 s가 1에 도달할때까지 반복될 것이다. 일단 s의 원래길이에서 0요소로를 뺀 문자열의 길이의 차를 담아서

//앤써의 두번째 요소에 축적시킨다. 0을 뺀 횟수를 나타낸다.

//이제 0을 뺀 녀석의 글자수를 이진법으로 나타낸것을 새로운 s로 할당한다. 그리고 이 변환횟수를 앤써에[0]에 

기록한다.

다른풀이

//처음부터 앤서를 하나씩 올려주고 .s에서 0만을 담은애로 배열을 만드는구먼

//replace를  사용해서 0을 빼고 2진법으로 만들어서 s에 재할당

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

피보나치 수

내풀이

//일단 첫 p1과 p2는 주어졌다. for문을 n-2번 돌게 설정하고 p3는 p2와 p1의 합에서 저거 나눈 나머지로 한다.

//이제 하나씩 다음애들을 미루면서 값을 재할당 해준다.

다른풀이

//옳은 풀이지만 각 피보나치가 기하급수 적으로 늘어나 엄청난 시간복잡도를 가지기 때문에 좋은 풀이라고는 볼수 없다.