비교적 만만한 2단계 문제라 생각되어
풀어보았습니다.
간단히 정리하면
더하기, 빼기, 곱하기
세 연산자의 순서, 즉 6가지 순서 중
절대값이 가장 큰 결과를 리턴하는 문제입니다.
우선 전역으로
숫자들을 담은 String과
StringBuilder, String을 담을 ArrayList를 만들어줍니다.
지금 보니 딱히 빌더가 아니어도 될 것 같습니다.
이건 여러분 선택.
우선 입력받은 String을
숫자와 연산자를 분리하여 ArrayLsit에 담아줍니다.
숫자들이 담긴 String nu 에 포함되는지 확인하고
맞으면 빌더에 하나하나 쌓아주고
숫자가 아닌 연산자가 나왔을 때,
쌓아둔 빌더를 ArrayLsit에 넣고
setLength로 빌더를 초기화 해줍니다.
그리고 마지막 인덱스일 경우
마저 남아있는 빌더를 넣어줍니다.
그리고 Nums 배열을 복사한 6개의 배열을 만들어줍니다.
이제 더하기, 빼기, 곱하기를 처리해줄 메서드를 만들어줍니다.
배열을 받아서 연산자가 포함되어 있는지 확인하고
포함되어 있다면 연산자의 위치를 찾습니다.
순서가 정해진 연산자는 앞에서부터 계산하면 되니
그냥 indexOf를 사용하면 됩니다.
찾은 index를 통해
연산자의 위치 좌, 우에 있는 숫자들을 가져와서
연산을 실행합니다.
그 결과는 re라는 필드값에 넣어주고
계산을 마친 피연산자와 연산자를 지워줍니다.
index-1을 세번 remove 해주면 딱딱딱! 하고 지워지겠죠
그리고 index-1위치에 re를 넣어주면
첫 번째 테스트케이스에서 곱하기가 한 번 실행된 후
이런식으로 배열이 완성됩니다.
그리고
재귀함수를 통해 연산자를 전부 처리 할 때까지
반복되도록 설계해줍니다.
더하기와 빼기 모두 이런식으로 처리 해주도록 합니다.
그리고 6가지의 케이스를
그냥 이렇게 해주면 됩니다 푸하하
ㅎㅎ
그럼 배열에 하나만 남을테니
0번째 인덱스를 가져와서 Long으로 바꿔주고
그리고 Math.abs로 절대값으로 바꿔줍니다.
answer 배열에 다 넣어주고
Collections.max로 최대값을 가져온 후
리턴하면 끄읏!
도움이 됐으면 좋겠네요
아래는 제가 직접 손수 수작업으로 하나부터 열까지 전부 직접 작성한 커뮤니티사이트 입니다
신생커뮤니티라서 많이 삭막하지만 들려주시면 고마울 것 같아요!
'코딩 테스트 문제 > 프로그래머스' 카테고리의 다른 글
프로그래머스 Level 2 자바 주차요금 2022 KAKAO BLIND RECRUITMENT (0) | 2022.08.28 |
---|---|
프로그래머스 Level 2 자바 [3차] 방금그곡 2018 KAKAO BLIND RECRUITMENT (0) | 2022.08.27 |
프로그래머스 Level 2 자바 두 큐 합 같게 만들기 2022 KAKAO TECH INTERNSHIP (0) | 2022.08.24 |
프로그래머스 Level 2 자바 2 x n 타일링 연습 문제 (0) | 2022.08.22 |
프로그래머스 Level 1 자바 성격 유형 검사하기 2022 KAKAO TECH INTERNSHIP (0) | 2022.08.22 |