반응형

안녕하세요~!!ㅎㅎ

알고리즘을 공부하는 개발자 Henry입니다~~ㅎㅎ

 

오늘은 제가 2020 하반기 농협하나로유통 전산직군에

합격한 과정에 대해서 말씀드리려고 해요~~

 

 

농협이라는 조합은

농협 중앙회를 중심으로 8개의 회사로 분사가 되어 법인 회사가 만들어졌습니다.

각 사업의 특성에 따라

 

농협중앙회·농협금융지주·

농협은행·농협생명보험·

농협손해보험·농협경제지주·

농협하나로유통·농협양곡

 

블라인드에서는 이것을 농협 8대 법인이라고 명시하고 있더라구요

 

저는 위 농협 8대 법인 중 유통업 회사인 

농협하나로유통에 전산직군 신입사원에 최종합격하였습니다.

 

>_<!!

 

 

 

 

 

농협하나로유통의 채용 프로세스는 아래와 같습니다.

 

서류전형(블라인드) - 필기전형(NCS, 코딩테스트) - 면접전형(토론면접, 집단면접)

 

3가지의 큰 범주로 진행되며, 각 단계마다 세분화되어

총 5번의 채용 절차가 진행되는 흐름이었습니다.

 

 

아래는 제가 지원한 채용 공고입니다.

 

사실 이 지원공고를 볼 때까지만 해도

취업준비를 하면서 따로

NCS를 공부해본 적이 없는지라

농협하나로유통 최종합격자가 될 지는 상상도 못했네요..ㅋㅋㅋ

 

 

 

 

 

 

 

 

특히 이번 2020 하반기에는

농협하나로유통에서 전산직군만 2자리 수를 뽑는 

파격적인 채용 공고가 올라왔습니다.

 

 

최근들어 언택트, 비대면, 4차산업 혁명 시대를 도래해서

사내에서 전산조직을 제대로 꾸릴 것이라는 카더라가 있었는데,

물 들어올 때, 열심히 노저어야겠다 라는 생각이 들었습니다.

 

 

 

 

1. 서류전형

 

농협 계열사에 지원하는 서류는

철저하게 블라인드 검수 과정을 거치게 됩니다.

 

성별, 학교명, 나이, 이름, 지인 등

지원자를 식별 가능한 정보들은

기입하지 않으려고 노력했습니다.

 

다만 그 동안 인턴을 했던 경험이나,

전 직장 경력(ex, 저같은 경우는 신세계아이앤씨)과 같은

회사명은 기입하였습니다.

 

추후 면접을 앞두고 연락해보니 

회사명은 기입이 가능하다고 전달을 받았습니다.

(아! 물론 회사명을 통해 학교를 유추할 수 있는 경우는 불가합니다!!)

 

이번 농협하나로유통 서류전형을 통해

블라인드 정신이 무엇인지 

제대로 깨닫게 되었습니다.!!

 

 

 

농협하나로유통에 지원하고

따로 필기를 준비하지는 않았습니다.

 

다만 IT 직군으로서 해야하는 기본적인 취업준비인

1. 코딩테스트

2. 자기소개서 쓰기

3. 인적성(ex, 소금물 농도, 거속시, 일률)

 

같은거는 꼭 이 회사만 아니더라도 

꾸준히 준비하며 기다렸습니다.

 

 

그리고 서류전형 결과가 나왔습니다.

 

 

결과는!!

 

 

 

합격!!ㅎㅎㅎ

 

 

 

 

서류전형을 통해 블라인드 검수 결과 이상이 없었고,

 

제가 기입한 내용이 어느정도의 스펙 요구사항을 맞추고 있었나봅니다~ㅋㅋ

 

 

 

2. 필기시험

 

그런데!!

 

한 가지 문제가 있었습니다!

 

 

그것은 바로 그 날 금융보안원 필기시험이 있었던 날이라는 것입니다.ㅜㅜ

심지어 시간도 겹침..ㅠㅠ

 

 

*금융보안원은 금융공기업 A매치 급에 거의 도달하는 회사로서

제 입장에서 포기하지 어려운 회사였습니다.

 

 

합격한 사실은 기뻤으나

사실 필기 시험을 안보려고 했습니다.

 

 

 

그리고 열심히 금융보안원 필기를 위해 정보보안기사 문제집을 사고

열심히 풀며 준비하다가 

 

 

"띠링!"

 

문자와 날라왔습니다.

 

 

"코스콤 서류전형 합격하셨습니다"

"금주 금요일 오전 8시까지 도착해주세요"

 

 

금요일은 제가 금융보안원 시험을 보는 날이었는데,

코스콤 시험까지 볼 수 있다니 겹경사였습니다.

 

 

그런데!!

 

시간대가 다르긴 했지만

두 회사의 필기시험장의 거리가 멀어

2마리 토끼(금보원, 코스콤)를 모두 잡을 수는 없었습니다.

 

그래서 과감히 금융보안원을 포기하고 코스콤을 보기로 하였습니다.

그리고 코스콤을 선택했을 때, 거리가 15분 거리인

농협하나로유통에서 시험을 치를 수 있는 이점도 있었습니다.

 

 

그렇게 엉성(?)하게 시작된 농협하나로유통 필기시험.

 

저는 코스콤 시험이 끝난 뒤

15분 뒤에 시작하는 농협하나로유통 시험을 보기 위해

시험 전 날 퀵 오토바이 서비스를 예약했습니다.ㅋㅋㅋ

 

 

택시타고 20분 거리인데,

15분 안에 가야했기 때문입니다.ㅜㅜㅋㅋㅋㅋㅋ

 

 

3. 필기 시험 당일

 

먼저 아침 일찍 일어나

코스콤 시험을 보러 갔습니다. 

 

 

 

 

코로나로 인해 집에서 공부를 하다가

오랜만에 아침일찍의 신선한 공기를 마실 수 있어

감사한 마음이 들었습니다.

 

 

열심히 코스콤 필기 시험을 보았고,

시험이 끝나고 확인해보니, 20분이 남았습니다.

그런데 제가 속한 반이 가장 늦게 퇴실하는 반이었습니다!!ㅜㅜ

 

그래서 퇴실이 가능하자마자

빠르게 뛰어나와 코스콤 필기 수험생들에게 나눠주는 

햄버거를 받지 못하고 퀵 아저씨를 찾았습니다.

 

 

Henry: "안녕하세요!ㅎㅎ"

아저씨: "신촌?"

Henry: "네!ㅎㅎ"

아저씨: "갑시다!"

 

 

 

생전 처음 오토바이를 타보며

마스크가 날아갈 정도의 바람을 느끼며

10분 정도를 달리니 농협하나로유통 필기 시험장이 나왔습니다!

 

 

다행히 늦지 않고 시간 내에 도착할 수 있었습니다!ㅎㅎㅎ

 

 

 

 

 

 

 

 

 

필기시험은 

인성 - 적성(NCS) - 코딩테스트 로 구성되어 있습니다.

 

인성과 적성은 기본적인 NCS 위주의 내용이었고,

별다른 계산력을 요구하는 문제는 없었습니다.

 

 

아는대로 빠르게 문제를 풀려고 하였지만,

NCS 특성 상 독해 능력이 많이 필요하였고,

결국 시간이 부족해 다 풀 수 없었습니다ㅠㅠ

 

 

그리고 코딩테스트는 JAVA, C 두가지 언어 중 1개를 골라 

10가지 문제를 풀었습니다.

 

 

농협하나로유통의 코딩테스트의 특이점은 

Python 지원이 되지 않는다는 것입니다.

 

그리고 C++도 아닌 C로 풀어야 된다는 부분이 함정이었습니다.

 

 

 

특히 저는 그동안 외부 라이브러리를 가져다쓰기 쉬운

Python으로만 문제를 풀어와서

급하게 지난 3일동안 Java 공부 조금 한 것이 전부였습니다.

 

 

그렇지만, 자신감을 가지고 

하나님께 기도를 드린 뒤 심호흡 한번 때리고

하나둘씩 문제를 풀었습니다.

 

 

후...

 

 

10문제 중 9문제 풀었습니다!!

 

 

 

시험을 다 보니 어느새 저녁이 되어있었습니다.

 

 

아침부터 시작해서 밥도 못먹고

저녁까지 에너지바 3개로 연명하다보니

머리가 띵해왔습니다.

 

하지만,

여자친구가 신촌에 깜짝 방문을 해주었습니다!!

>_<!!

 

갑자기 제가 생각나서 왔다는 이야기를 들으니,

귀엽고 사랑스러운 여자친구를 보고 있으니

그날 피로가 싹 사라졌습니다!ㅋㅋㅋ

 

근처 해장국집에 들어가서 

뜨끈한~ 순댓국 먹고 집으로 돌아갔습니다

ㅎㅎ

 

 

 

과연 Henry의 필기 시험 결과는 어떻게 되었을까요?

 

 

 

결과는!!

 

 

 

합격이었습니다!!ㅎㅎㅎ

 

 

 

 

 

 

 

NCS는 그냥 빨리 풀려고 노력하고

코딩테스트 9문제 맞춘것이 합격의 포인트가 아닐까

조심스럽게 예측해보았습니다.

 

 

 

3. 면접 전형

 

후..

 

신체검사를 무난히 끝내고

이제 남은 것은 토론면접과 집단면접이 있는 원데이 면접이었습니다.

 

 

특히 저는 말을 논리적으로 하는 것을 못해서

이 부분을 유튜브를 통해서 열심히 준비했던 것 같습니다!

 

 

유튜브에서 직접 2020 논제로 나올만한 내용들을 찾아보고

먼저 논리적으로 근거 세워보고

유튜브 고수들이 말하는 논거와 대조해보고 하며 준비하였습니다.

 

 

밥먹으면서 누나랑도 토론해보고, 교회에서 셀원들과도 토론을 해보았습니다.ㅋㅋㅋ

(잠시동안 연습벌레가 되었습니다ㅎㅎ)

 

 

 

집단면접은 농협하나로유통에서 내가 IT 직군으로서

어떤 성과를 낼 수 있을지

농협하나로유통의 사업과, IT 적용점을 준비해갔습니다..!!

 

 

그리고 면접 당일!

 

신촌역에서 내린 뒤 두리번 거리니

저와 같은 정장을 입고 있는 분들이 가는 방향으로 

그대로 쭈욱 따라갔습니다.ㅋㅋㅋ

 

 

 

 

 

5~6인 1조로 이루어지는 면접 조가 편성되고

 

각 조들이 로테이션돌면서 순차적으로 집단면접 - 토론면접을 받는 순서였습니다.

 

 

 

저는 서류를 먼저 제출하고

집단면접 후 토론면접을 하는 순서였습니다.

 

 

집단면접에서는

보통 NCS 외부인사와 내부 임원들이 참여하는 것 같았습니다.

모두가 지원자들의 자소서를 기반으로 궁금한 내용들을 질문하셨고,

압박질문도 있었습니다

 

 

그리고 토론면접에서는

딱 봐도 찬반이 갈리는 그런 논제가 나왔습니다.

저는 반대측이었고, 자신있게 반대측 팀원들과 소통하며,

주장에 대한 근거 3가지를 제대로 밀어붙이자 라는 이야기로

팀에 힘을 실어주었습니다.ㅎㅎㅎ

 

 

 

그리고 면접이 모두 끝난 뒤 5만원의 면접비를 수령하고

농협하나로유통 회사를 나왔습니다.

 

나올때 직원분들이 웃는 얼굴로 모습으로

 

좋은 결과 있으시길 바랍니다ㅎㅎ

 

라고 이야기하는 것을 보면서

대체적으로 여유가 있는 회사구나 라고

회사 분위기를 새삼 느낄 수 있었습니다

 

 

 

그리고 면접을 마친 뒤

또 오후에 있을 코스콤 면접을 보러

여의도로 가는 버스를 탔습니다~~!!

 

 

 

 

 

버스를 타고 가면서

생각보다 토론면접을 잘한 것 같은 느낌이 들어

혼자 행복회로를 돌리며 코스콤 면접을 보러갔던 기억이 납니다ㅋㅋㅋ

 

 

 

 

과연

 

Henry는 농협하나로유통에 합격을 하였을까요?

 

 

 

 

네!! 최종합격했습니다!!><

 

 

 

 

 

 

 

 

12월 8일 5시가 딱 되어서

문자가 날라왔고, 저는 기도한 후에 눈 감고 클릭했는데,

하나님께서 좋은 결과를 주셨습니다!!

 

 

9개월간의 취업준비가 끝나는 순간이었습니다!!

 

 

그래서 바로 부모님과 여자친구, 친구들에게 이 좋은 소식을 알렸습니다.

 

모두가 한마음으로 축하해주었습니다

ㅎㅎㅎ

 

 

 

 

그 동안 서류부터 시작해서

오토바이 타고 필기 시험 본 것과

생전 처음 토론면접을 해본 순간들이 주마등처럼 지나갔습니다.


 

 

제가 이렇게 글을 쓰는 이유는

제가 취업준비를 하면서 도움을 받았던 것처럼

누군가도 저의 글을 통해 도움이 되었으면 해서 입니다.

 

이상 긴 글 읽어주셔서 감사합니다!!><ㅎㅎㅎ

 

반응형
반응형

 

 

 

올 하반기에는 코로나19로 인해 취업 시장 문이 얼어붙은 것을

몸소 체험할 수 있었던 시간이었다.

 

그래도 성실하게 최선을 다해 노력하다보니,

아직까지도 몇몇개의 기업들을 남겨두고 있다.

 

하반기의 아웃풋만 정리하자면,

최합: 농협하나로유통

최종 결과 기다리는 곳: 현대IT&E

임원면접 앞두고 있는 곳: KDBC

1차면접 결과 기다리는 곳: 엔씨소프트

서류 지원하고 기다리는 곳: 기업은행, 현대트랜시스, 현대카드

 

자소서를 거의 100군데 넘게 썼다.

하루에 3개를 쓰는 날도 있었고, 

갑작스럽게 붙게 된 필기에

시험 전날 문제집을 사서 조금만 감을 익히고 다음날 시험보러 갔던 곳도 있었다.

 

그리고 필기 합격률이 어느정도씩 올라가던 때에, 면접에 대한 변수도 존재했다.

면접 종류가 이렇게 많았었나..?

영어면접, 피티면접, 토론면접, 코테면접, 역량면접, 집단면접

 

다양한 면접을 갑작스럽게 맞이하게 됬지만, 미리 포기하지 않고 

남은 하루 이틀이라도 최선을 다해 계획성있게 준비했다.

 

현재 농협하나로유통에 최종합격을 하게 되었는데,

여기는 심지어 오전에 코스콤 필기시험을 보고, 15분 뒤에 시작되는 NCS+코테였다.

그래서 전날 퀵오토바이를 불러서 예약하고 시험 끝나자마자 바로 달려나가, 나눠주는 햄버거도 받지 못하고

바로 10분만에 도착해서 허겁지겁 시험을 봤던 곳이었다.

 

결국에 현재 최종합격이라는 좋은 결과를 주셨다.

 

아직 다음주 최종결과를 기다리는 곳이 있다.

엔씨소프트도 면접 분위기는 좋았는데, 붙게 되면 다음주에 면접을 보게 될 것 같다.

현대무벡스는 나에게 가장 힘이 되어주었던 회사인데, 코로나19 확진자의 증가로 인해 1월 중순으로 최종면접이 미뤄졌다.ㅜㅜ

아쉽지만 여기는 놓아주어야할 것 같다.

 

남은 기간도 최선을 다해서 준비하려고 한다.

 

각 회사별 장점을 정리해보자면,

농협하나로유통: 농협중앙회 8대 법인으로서, 7급 5호봉 입사임에도 추후 연봉인상률이 우수하다. 그리고 대략 13~15명 정도의 동기들이 있다는 사실이 든든하다.

엔씨소프트: 빅데이터 엔지니어의 역량을 기를 수 있다. 어떻게보면 내가 하고 싶었던 업무였고, 나름 초봉도 나쁘지 않다고 알려져있다. 집이랑 가까운 것도 장점이다.

현대IT&E: 현대백화점그룹으로서 계열사간 복지 및 할인 혜택이 우수하다. 또한 동기들이 많아서 외롭지 않을 것 같다. 대기업 SI, SM 계열이라고 생각하면 전직장의 경험으로 잘 생활할 수 있을 것 같다.

현대무벡스: 초봉이 4천 후반대로 나쁘지 않고, 중견기업으로 들어가서 학자금대출로부터 조금 자유로워질 수 있다.

 

곧 입사를 앞두고,

 

"앞으로는 회사에서 성실하게 근무하는 것과 함께

지금과는 다른 삶을 살아가야 하겠지..?"

 

2021년 목표

영어: 전화영어 꾸준히 하고, 영어 공부 계속 해서 오픽 AL 받기

취미 및 기술: 유튜브 다시 시작하기(코딩을 쉽게 알려주는 채널 만들기)

생활: 결혼준비(예상 12월), 운동 규칙적으로!

반응형
반응형

자바 코드로 풀었다.

 

 

 

문제 설명

array의 각 element 중 divisor로 나누어 떨어지는 값을 오름차순으로 정렬한 배열을 반환하는 함수, solution을 작성해주세요.
divisor로 나누어 떨어지는 element가 하나도 없다면 배열에 -1을 담아 반환하세요.

제한사항

  • arr은 자연수를 담은 배열입니다.
  • 정수 i, j에 대해 i ≠ j 이면 arr[i] ≠ arr[j] 입니다.
  • divisor는 자연수입니다.
  • array는 길이 1 이상인 배열입니다.

입출력 예

arr      divisor       return

[5, 9, 7, 10] 5 [5, 10]
[2, 36, 1, 3] 1 [1, 2, 3, 36]
[3,2,6] 10 [-1]

입출력 예 설명

입출력 예#1
arr의 원소 중 5로 나누어 떨어지는 원소는 5와 10입니다. 따라서 [5, 10]을 리턴합니다.

입출력 예#2
arr의 모든 원소는 1으로 나누어 떨어집니다. 원소를 오름차순으로 정렬해 [1, 2, 3, 36]을 리턴합니다.

입출력 예#3
3, 2, 6은 10으로 나누어 떨어지지 않습니다. 나누어 떨어지는 원소가 없으므로 [-1]을 리턴합니다.

 

 

문제 푸는 방법:

완전 탐색으로 하나씩 divisor와 나누어주면 된다.

정렬할 때는

Collections.sort();를 쓰면 되고,

내림차순 정렬할 때는 Collections.sort(arr,Collections.reverseOrder()); 라고 하면 된다.

 

 

정답 코드는 아래와 같다.

 

import java.util.*;
    
class Solution {
    public int[] solution(int[] arr, int divisor) {
        int[] answer;
        ArrayList<Integer> list = new ArrayList<>();
        for(int i=0; i<arr.length; i++){
            if(arr[i]%divisor == 0){
                list.add(arr[i]);
            }
        }
        Collections.sort(list);
        answer = new int[list.size()];
        for(int i=0; i<list.size(); i++){
            answer[i] = list.get(i);
        }
        if(answer.length == 0){
            int[] answer2 = {-1};
            return answer2;
        }
        return answer;
    }
}
반응형
반응형

자바 코드로 풀어보았다~

 

 

 

문제 설명

배열 arr가 주어집니다. 배열 arr의 각 원소는 숫자 0부터 9까지로 이루어져 있습니다. 이때, 배열 arr에서 연속적으로 나타나는 숫자는 하나만 남기고 전부 제거하려고 합니다. 단, 제거된 후 남은 수들을 반환할 때는 배열 arr의 원소들의 순서를 유지해야 합니다. 예를 들면,

  • arr = [1, 1, 3, 3, 0, 1, 1] 이면 [1, 3, 0, 1] 을 return 합니다.
  • arr = [4, 4, 4, 3, 3] 이면 [4, 3] 을 return 합니다.

배열 arr에서 연속적으로 나타나는 숫자는 제거하고 남은 수들을 return 하는 solution 함수를 완성해 주세요.

제한사항

  • 배열 arr의 크기 : 1,000,000 이하의 자연수
  • 배열 arr의 원소의 크기 : 0보다 크거나 같고 9보다 작거나 같은 정수

입출력 예

arr       answer

[1,1,3,3,0,1,1] [1,3,0,1]
[4,4,4,3,3] [4,3]

입출력 예 설명

입출력 예 #1,2
문제의 예시와 같습니다.

 

 

 

문제 푸는 방법:

arr를 한번씩 돌면서 이전과 다를때 추가해주면 된다.

 

정답 코드

import java.util.*;

public class Solution {
    public int[] solution(int []arr) {
        int[] answer;
        ArrayList<Integer> list = new ArrayList<>();
        int cur = arr[0];
        for(int i=1; i<arr.length; i++){
            if(cur != arr[i]){
                list.add(cur);
                cur = arr[i];
            }
        }
        list.add(cur);
        answer = new int[list.size()];
        for(int i=0; i<list.size(); i++){
            answer[i] = list.get(i);
        }
        
        // [실행] 버튼을 누르면 출력 값을 볼 수 있습니다.
        System.out.println("Hello Java");

        return answer;
    }
}
반응형
반응형

자바 코드로 풀었다!!

 

 

 

문제 설명

자연수 n이 매개변수로 주어집니다. n을 3진법 상에서 앞뒤로 뒤집은 후, 이를 다시 10진법으로 표현한 수를 return 하도록 solution 함수를 완성해주세요.


제한사항

  • n은 1 이상 100,000,000 이하인 자연수입니다.

입출력 예

n        result

45 7
125 229

입출력 예 설명

입출력 예 #1

  • 답을 도출하는 과정은 다음과 같습니다.

n (10진법)      n (3진법)      앞뒤 반전(3진법)      10진법으로 표현

45 1200 0021 7
  • 따라서 7을 return 해야 합니다.

입출력 예 #2

  • 답을 도출하는 과정은 다음과 같습니다.

n (10진법)        n (3진법)       앞뒤 반전(3진법)      10진법으로 표현

125 11122 22111 229
  • 따라서 229를 return 해야 합니다.

 

 

문제 푸는 방법:

int 로 계산하면 너무 큰 숫자에 대해서는 받아줄 수 없으므로,

Long으로 계산해준다.

그리고 char -> int로 바꾸어주는 Character.getNumericValue(c); 를 사용하는 것도 필요하다.

 

정답 코드는 아래와 같다.

import java.lang.Math;

class Solution {
    public int solution(int n) {
        int answer = 0;
        String str = Long.toString(Long.parseLong(convert(n)));
        int idx = 0;
        for(int i=str.length()-1; i>-1;i--){
            System.out.println("i:"+i);
            answer += Math.pow(3,i)*Character.getNumericValue(str.charAt(idx));
            idx++;
        }
        
        return answer;
    }
    
    public String convert(int num){
        if(num/3 == 0){
            return Integer.toString(num%3);
        }
        return Integer.toString(num%3) + convert(num/3);
    }
}
반응형
반응형

자바 코드로 풀기!

 

 

 

문제 설명

단어 s의 가운데 글자를 반환하는 함수, solution을 만들어 보세요. 단어의 길이가 짝수라면 가운데 두글자를 반환하면 됩니다.

재한사항

  • s는 길이가 1 이상, 100이하인 스트링입니다.

입출력 예

s       return

abcde c
qwer we

 

 

문제 푸는 방법:

String의 길이는 s.length()로 메소드를 호출한다.

그리고 인덱스 접근하려면 charAt() 메소드로 접근할 수 있다.

그리고 /는 자동으로 int로 가져온다. %는 나머지이다.

String의 길이를 나누어서 짝수면 가운데 두개, 홀수면 가운데 하나를 가져온다.

 

정답 코드:

class Solution {
    public String solution(String s) {
        String answer = "";
        if(s.length()%2 == 0){
            answer += s.charAt(s.length()/2-1);
            answer += s.charAt(s.length()/2);
        }else{
            answer += s.charAt(s.length()/2);
        }
        return answer;
    }
}
반응형
반응형

자바코드로 풀어보았다.!

문제 설명

2016년 1월 1일은 금요일입니다. 2016년 a월 b일은 무슨 요일일까요? 두 수 a ,b를 입력받아 2016년 a월 b일이 무슨 요일인지 리턴하는 함수, solution을 완성하세요. 요일의 이름은 일요일부터 토요일까지 각각 SUN,MON,TUE,WED,THU,FRI,SAT

입니다. 예를 들어 a=5, b=24라면 5월 24일은 화요일이므로 문자열 TUE를 반환하세요.

제한 조건

  • 2016년은 윤년입니다.
  • 2016년 a월 b일은 실제로 있는 날입니다. (13월 26일이나 2월 45일같은 날짜는 주어지지 않습니다)

입출력 예

a      b      result

5 24 TUE

 

 

 

문제 푸는 방법:

날짜를 다 더해서 7로 나누어주고 나머지에 해당하는 인덱스 0~6을 THU ~ WED로 출력해주면 된다.

배열 정적 할당할 때

String[] temp = {"abc","bcd"}; 이렇게 하면 되는것을 배움.

 

class Solution {
    public String solution(int a, int b) {
        String answer = "";
        String[] days = {"THU","FRI","SAT","SUN","MON","TUE","WED"};
        int month = 1;
        int day = 0;
        while(month <= a){
            if(month == a){
                day += b;
                //System.out.println(day);
                day %= 7;
                return days[day];
            }
            if(month == 1){
                day += 31;
            }else if(month == 2){
                day += 29;
            }else if(month == 3){
                day += 31;
            }else if(month == 4){
                day += 30;
            }else if(month == 5){
                day += 31;
            }else if(month == 6){
                day += 30;
            }else if(month == 7){
                day += 31;
            }else if(month == 8){
                day += 31;
            }else if(month == 9){
                day += 30;
            }else if(month == 10){
                day += 31;
            }else if(month == 11){
                day += 30;
            }else if(month == 12){
                day += 31;
            }
            month++;
        }
        
        return answer;
    }
}
반응형
반응형

자바 코드로 풀어보았다.

 

 

 

 

 

문제 설명

수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다.

마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수들의 이름이 담긴 배열 completion이 주어질 때, 완주하지 못한 선수의 이름을 return 하도록 solution 함수를 작성해주세요.

제한사항

  • 마라톤 경기에 참여한 선수의 수는 1명 이상 100,000명 이하입니다.
  • completion의 길이는 participant의 길이보다 1 작습니다.
  • 참가자의 이름은 1개 이상 20개 이하의 알파벳 소문자로 이루어져 있습니다.
  • 참가자 중에는 동명이인이 있을 수 있습니다.

입출력 예

participant        completion        return

[leo, kiki, eden] [eden, kiki] leo
[marina, josipa, nikola, vinko, filipa] [josipa, filipa, marina, nikola] vinko
[mislav, stanko, mislav, ana] [stanko, ana, mislav] mislav

입출력 예 설명

예제 #1
leo는 참여자 명단에는 있지만, 완주자 명단에는 없기 때문에 완주하지 못했습니다.

예제 #2
vinko는 참여자 명단에는 있지만, 완주자 명단에는 없기 때문에 완주하지 못했습니다.

예제 #3
mislav는 참여자 명단에는 두 명이 있지만, 완주자 명단에는 한 명밖에 없기 때문에 한명은 완주하지 못했습니다.

 

 

 

문제 푸는 방법:

java string을 비교할 때는 equals를 사용해야한다.

String a;

String b;

a==b <- 주소값끼리 비교

a.equals(b); <- 내용끼리 비교

 

문제 푸는 방법은 둘다 정렬하고 하나씩 탐색하면서 다르면 return 해주면 된다.

 

정답 코드:

import java.util.*;

class Solution {
    public String solution(String[] participant, String[] completion) {
        String answer = "";
        Arrays.sort(participant);
        Arrays.sort(completion);
        for(int i=0; i<completion.length; i++){
            //System.out.println("participant: "+ participant[i] + "||" + "completion: "+completion[i]);
            if(!participant[i].equals(completion[i])){
                return participant[i];
            }
        }
        return participant[participant.length-1];
    }
}
반응형

+ Recent posts