문제정보 문자열이 매개변수로 주어지는데 소문자 대문자 자연수가 섞여있는 문자열이네요 그 사이에서 자연수값들만 찾아서 더해주면 되는 문제인데 한가지 까다로운점이 연속된 수는 하나의 숫자로 간주한다는 것이었습니다. 저는 어떻게 해결할지 생각해보다가 charCodeAt을 통해 아스키코드로 문제를 푸는 방법을 택했습니다. 숫자 0~9의 아스키코드는 48~57이니까 대문자는 65~90 소문자는 97~122 이고 소문자 대문자 자연수만으로 구성되어있으니 아스키코드가 57보다 크면 일단 숫자는 아니겠군요 예시 my_stringresult "aAb1B2cC34oOp"37 "1a2b3c4d123Z"133 나의풀이 function solution(my_string) { let answer = 0 let counter = ..
문제정보 서비스 치킨을 얼마나 먹을 수 있을지 구하는 문제입니다. 예전엔 치킨 시켜먹으면 열마리 모았을때 한마리 공짜인 쿠폰 하나씩 주는게 국룰이었는데 요새는 많이 사라지고 있는 문화같아서 안타까운.. 나중에는 치킨쿠폰이란게 뭔지도 모르는 애들도 나오는 거 아님? 하여간 서비스 치킨에도 쿠폰을 주는 거 보면 굉장히 인심이 넉넉한 사장님인 것 같네요 구현하는 건 쉬울 것 같습니다. 나의풀이 function solution(chicken) { let counter = 0 while(chicken > 1) { counter += chicken / 10 chicken = chicken / 10 } return Math.floor(counter) } counter가 서비스로 받은 치킨라고 생각하면 쉽습니다. ch..
문제정보 문자열로 이루어진 배열 두개가 주어집니다. 리트코드에서 비슷한 유형의 문제를 풀었던 기억이 있어서 그걸 토대로 풀어봤습니다 leetcode 500 keyboard row라는 문제랑 굉장히 흡사하네요!! forEach를 이용해서 dic의 각 요소들을 split해주고 spell의 단어들을 모두 가지고 있는 단어들을 찾아서 answer 배열에 넣어준 다음 answer 배열의 길이가 0이 아니라면 1을 0이라면 2를 반환하게하면 될 것 같습니다 나의풀이 function solution(spell, dic) { let answer = [] //정답을 저장해줄 배열 dic.forEach(ele => { let spliter = [...new Set(ele)] // 각요소를 set으로 만들어 중복을 없애고 ..
문제정보 레벨은 0인데 꽤나 어려웠던 문제입니다. 일단 오른쪽으로 한칸씩 밀고 마지막 문자는 맨 앞으로 이동시켜야하는군요 pop()을 해서 마지막 문자를 뽑아주고 그걸 unshift()로 맨 앞에 넣어주는 식으로 구현할 수 있을 것 같았습니다. 민 횟수를 답으로 반환해야하니 민 횟수를 계산해줄 카운터도 필요하겠네요 예시 ABresult "hello""ohell"1 "apple""elppa"-1 만약 아무리 위치를 돌려도 안되는 경우엔 -1을 반환해주면 되는군요 나의풀이 function solution(A, B) { let counter = 0 let Asplit = A.split('') for(i=0;i(b+b).indexOf(a) 만약 A가 HELLO B가 OHELL인 케이스로 생각하면 let solu..
문제정보 뭔가 리트코드에서 이거랑 비슷한 문제를 풀었던 기억이 나는 것 같은데요 리트코드보다 조건이 훨씬 간단하게 주어졌네요 비슷한 방식으로 풀면 되겠다는 생각이 들었습니다. 공백으로 구분되니 공백을 기준으로 split해주면 되겠네요 예시 sresult "1 2 Z 3"4 "10 20 30 40"100 "10 Z 20 Z 1"1 "10 Z 20 Z"0 "-1 -2 -3 Z"-3 나의풀이 function solution(s) { let answer = 0 let arr = s.split(" ") for(i=1 ; i acc + cur ) } LIFO구조라고하면 거창해보이지만 구현은 간단합니다. 배열에 Z가 아닌 요소들을 push해주면 가장 나중에 들어간 요소는 배열의 가장 뒤에 위치할것입니다. Z를 만났을..