문제를 보는 순간 스택을 이용하여 해결할 수 있다는것을 알았다. 이와 비슷한 문제를 백준, 아니면 프로그래머스 lv1에서 풀어본 거 같다. [내 풀이] 문자를 하나 씩 스택에 넣는다. 하지만 여기에 규칙이 있다. 스택에 존재하는 기존 문자과 이제 넣을 문자을 비교하여 같으면(2개의 문자가 연속으로 들어간다) 스택에서 기존 문자을 제거한다. 처음 문자은 비교할 대상이 없으므로 무조건 스택에 넣는다. 그리고 다음 문자 부터 스택 안의 문자와 비교를 통하여 제거 또는 삽입한다.
최대공약수 임시변수(나머지)에 a(나누어진 수)와 b(나누는 수)를 나머지 연산하여 값을 넣는다. 그리고 a(나누어진 수)에 기존 b(나누는 수)를 넣고, b(나누는 수)에 나머지 값r을 넣는다. 이렇게 b(나누는 수)가 0 이 될때 까지 반복! 그때 a의 값은 최대 공약수가 된다. 최소공배수최소공배수 두수의 곱 / 두수의 최대공약수(gcd) 구해진 최대 공약수를 두수의 곱으로 나누면 최소공배수가 된다. 여기서 중요! 2중 for문을 통해 모든 경우의 수에 대해 최소공배수를 구하며는 안된다. 이럴경우 마지막 결과값이 return된다. 두 개의 최소공배수를 구하고, 그 최소공배수랑 배열의 다음 값이랑 다시 함수를 돌리면 구할 수 있다. https://velog.io/@mkdevelop5002/%ED%94%..
문제 설명이 부족해서 많이 힘들었던 문제다. 처음엔 trim을 사용해 양쪽 공백을 지우고 공백이 여러개일 경우도 생각하지 못했다. 이 문제의 핵심은 문자 사이에 공백이 여러 개 있을 수도 있다. 한 개일 거라 생각하고 split을 사용하여 문제통과를 하지 못하였다. flag를 이용하여 문자를 하나하나 확인하였다. 우선 flag를 true값을 줬다(공백). 만약 문자가 공백이 아닐경우 이전 문자가 공백인지 확인하는 flag값을 참조하여 flag=true 면 대문자로 설정하고, flag=false면 소문자로 설정하였다. 그리고 공백일경우 그대로 공백을 answer에 붙여주었다. [내 풀이]