Algorithm) Codekata_Day 6

김명성·2021년 7월 26일
0

Algorithm

목록 보기
6/61
post-thumbnail

❓ Question

로마자로 표시된 문자열을 숫자로 변경해서 해당하는 숫자를 반환하기
로마자 표기 원칙) I = 1, V = 5 일 때, 4를 표현 하고 싶을 때 : IIII (x) / IV (o)

📝 My Solution

로마 문자와 1:1로 대응하는 숫자들을 찾아내는 것이 먼저기 때문에
객체의 키와 value를 분류해서 저장하는 작업을 먼저 했다.

그 다음 키 값과 일치하는 값을 차례로 넣기 위해 인자의 값을
하나씩 분류해 새로운 배열 (strArr) 을 만들었다.

문자에 대응 될 숫자가 들어올 새로운 배열 (newArr) 을 만들고
마지막 결과값이 들어갈 변수 (result)도 만들었다.

반복문을 이용해서 먼저 strArr의 값을 객체의 키가 담긴 배열 (romKeys)에서 찾고
그 인덱스 값을 이용해 일치하는 value 값을 불러오게 했다.
그 값을 newArr에 넣어서 해당 값이 나올 수 있게 해줬다.

다시 한번 반복문을 돌려서 newArr의 값을 로마자의 원칙에 맞게 합산해 주었다.
왼쪽 값과 비교해서 왼쪽 값이 작으면 빼고, 크면 그대로 더해주는 방식으로 답을 냈다.


📝 Another Solution

들어온 인자를 하나씩 쪼개서 배열로 저장해주고,
모든 값이 더해질 변수를 설정하는 것 (sumNum) 까지는 같지만
키와 value 값에 접근하는 방식을 map 함수를 이용해 접근했다.

(기존 코드보다 무려 8줄이 줄여지는 기적..)

이 후, 조건에 의한 값 합산은 같은 방식으로 진행된다.

▪️ Solution review

map 함수를 조금 더 수월하게 사용할 수 있도록
여러가지 예제를 통해 연습할 수 있어야겠다.

profile
잠재력은 핵폭탄급 Frontend Developer

0개의 댓글

관련 채용 정보