처음 써보는 글입니다.
기대는 하지 마세요.
최근에 올라온 재미난 프로그래머스 문제를 푼 것을 올려봅니다.
전역으로 ArrayList 객체를 만들어주고 시작합니다.
용도는 이후에 나옵니다.
일단 int 배열을 원 투 쓰리 포 만들어줍니다.
안에는 로원이 땅꽁처럼 0을 두개씩 넣어줬습니다.
(로원이는 저희 집 고양이)
그리고 아래에 적당히
스트링빌더 객체를 하나 만들어줍니다.
그럼
이런 모양이 되겠죠.
절대 예상 못 하셨겠지만
저 여덟개의 '0'은
서로 묶이는 성격 유형의 알파벳입니다.
(R,T), (C,F) 요로코롬이요
그리고 그 아래 for문을 하나 추가 해줍니다
만약에 게임 같네요.
quick이라는 이름은 딱히 의미가 없습니다.
그냥 빨리 풀어버리고 싶어서 저렇게 적었어요.
survey에서 하나씩 가져와서 split으로 분리 해줍니다
그럼 첫번째 테스트 케이스의 "AN" 이
{"A", "N"} 으로 분리되어 quick에 할당 되겠죠.
그리고 result라는 메서드로 quick과 choices[ i ] 를 같이 보내줍니다.
int인 front와 back을 하나씩 만들어 줍니다.
그리고 또 또 if문을 엽니다.
choices[ i ] 값인 x 의 값을 이용해서
점수를 front와 back 중 하나에 넣어줍니다.
그리고 점수가 들어간 곳을 판별 해주고
static인 num ArrayList 에 점수를 넣어줍니다.
그리고 front가 크면 z 배열의 [1]을,
back이 크면 [ 0 ] 을 리턴 해줍니다.
그리고 x가 0인 경우 (값이 같은 경우)
위의 for문에서 out of bound 방지를 위해
그냥 하나 add 해줍니다.
sort는 왜 했는지 모르겠네요. 과감히 빼죠.
결과에서 사전순으로 정한다는 것을
의식했나봄 ㅋㅋ
다시 돌아와서
result의 결과를 return받은 re 객체를 사용하여
성격 유형 알파벳들과 비교 해줍니다.
보기 어지럽네요.
여러분은 배열로 풀어주세요.
아무튼 같은 알파벳을 찾으면
맨처음에 만든, 원 투 쓰리 포... 기억나시죠?
알파벳의 자리에 점수를 추가 해줍니다.
마지막으로 원 투 쓰리 포 끼리끼리
총 점수를 비교해서 스트링빌더 asdzxc에
넣어줍니다.
점수가 같으면 사전순으로 먼저오는 알파벳을
넣어주라고 했는데,
마침 자기들끼리 정렬이 돼있네요 허허
|| = and 를 사용해 같을 경우도 앞에 녀석을
보내줍니다.
마지막으로 asdzxc를 리턴 해주면 끝! 입니다.
카카오문제는 항상 참 뭔가
기네요 문제든 답이든
답은 저만 길 수도 있긴 하지만...
재미있는 문제였습니다 허허
다음에는 글을 더 잘 써보도록 하겠읍니다...
글도 쓰다보면 늘겠죠 뭐
감사합니다.
아래는 제가 직접 손수 수작업으로 하나부터 열까지 전부 직접 작성한 커뮤니티사이트 입니다
신생커뮤니티라서 많이 삭막하지만 들려주시면 고마울 것 같아요!
'코딩 테스트 문제 > 프로그래머스' 카테고리의 다른 글
프로그래머스 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 자바 수식 최대화 카카오 인턴 (0) | 2022.08.24 |
프로그래머스 Level 2 자바 2 x n 타일링 연습 문제 (0) | 2022.08.22 |