지루한 회사 생활😢에서 벗어나 처음으로 도전해 본 필기시험(이직을 위한..?) 농협 6급 IT
코딩 테스트를 본 지 2년이 다 되어가 취준 때의 감을 잃어버렸지만..
짧막하게 농협 6급 IT 코딩 테스트 및 필기(직무상식&능력 평가)에 대한 후기를 올려보겠다.
시험 일정은
- 1차 코딩테스트 1.7(토)
- 2차 직무상식, 능력평가 1.8(일)
로 나뉘어 2번 진행될 예정이었으나, 2차 시험이 프로그래머스 서버가 터지는 바람에.. 약 1시간 반 대기하다
그 다음주인 1.14(토)로 연기가 되었다.
코딩테스트는 총 5문제가 나왔고 3문제 코딩, 2문제 SQL이 출제되었다.
코딩테스트 첫 문제는 for문과 if문을 이용하여 계좌의 금액 기준으로 이자를 계산하는 문제가 나왔다.
ex) 입력값으로 계약금액(1,000,000원)과 금리(3%)가 주어지면,
(1년치 이자) = 계약금액 x 금리 = 1,000,000 x 0.03 = 30,000(원)
프로그래머스 사이트에서 풀어야돼서 자동완성 기능을 쓰지 못하는 바람에 Int 형 배열의 크기를 불러오는 arr.length 를 기억해내느라 시간을 허비하였지만 간단히 풀 수 있는 문제였다.
두 번째 문제는 기억이 가물가물하지만
100보다 작은 정수 A, B가 있다고 할 때 A*B 로 만들어지는 정수 C가 A, B를 이루는 숫자로 구성이 되었냐를
묻는 문제였다.
예를 들어 A, B는 2보다 작은 정수일 때,
A * B = C의 경우의 수는 아래와 같이 4가지이다.
A | B | A*B = C | 여부 |
1 | 1 | 1 | O |
1 | 2 | 2 | O |
2 | 1 | 2 | O |
2 | 2 | 4 | X |
여기서 C 가 A, B를 이루는 수로 이루어 질때 주어진 조건이 만족하여 출력값은 3이 된다.
(위에서는 1, 2, 3번째 경우가 만족)
좀 더 큰 숫자를 예시로 들면
A=38, B=10 이라면 C는 380 이다.
C는 3, 8, 0으로 이루어졌기 때문에 A, B를 이루는 숫자 1, 3, 8, 0로 구성이 이루어지므로 조건을 만족한다.
따라서, 1<= A <= N, 1<= B <= M 에서 N, M 이 주어졌을 때
위 조건을 만족하는 케이스를 묻는 문제였다.
풀이는 A, B의 숫자를 String 문자열로 바꿔서 한 자리씩 Queue에 넣고, C를 문자열로 바꿔서 한 자리씩
Queue의 Contains() 함수를 이용하여 들어가있는지 확인해보면 되지 않았을까 하는 생각이 든다.
(시험 당시엔 String 전환을 생각 못하고 /10, %10 을 이용하여 한 자리씩 구하느라 먼길을 돌아갔다.)
세 번째 문제는 2차원 배열 int[][] map 이 주어졌을 때, 해당 배열의 값이 특정한 상태를 지닌 블럭이라하고 1초마다 아래로 떨어진다고 할 때 시간이 충분히 지난 후에 배열의 상태를 반환하는 문제였다.
(값)
0: 비어있는 공간
1: 1초마다 한칸씩 아래로 떨어지는 블럭
2: 움직이지 않으며, 주변에 1블럭을 못떨어지게하는 접착 블럭
0 | 0 | 1 | 0 | 0 |
0 | 1 | 0 | 0 | 0 |
1 | 0 | 0 | 2 | 1 |
0 | 0 | 0 | 1 | 0 |
0 | 0 | 0 | 0 | 0 |
으로 map이 주어졌을 때
1초가 지난 뒤의 모습은
0 | 0 | 0 | 0 | 0 |
0 | 0 | 1 | 0 | 0 |
0 | 1 | 0 | 2 | 1 |
1 | 0 | 0 | 1 | 0 |
0 | 0 | 0 | 0 | 0 |
이고,
시간이 충분히 흐르고 난 뒤의 map은
0 | 0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 | 0 |
0 | 0 | 1 | 2 | 1 |
0 | 0 | 0 | 1 | 0 |
1 | 1 | 0 | 0 | 0 |
이 될 것이다. 여기서 2는 움직이지 않고 주변의 1을 접착시켜 움직이지 못하게 하므로 위와 같이 움직이지 않고
고정된 상태가 된다.
따라서 테스트 케이스는 주어진 int[][] map 의 시간이 충분히 흐른 뒤의 map을 반환시키면 정답이 된다.
마지막으로 SQL 2문제는 JOIN은 나오지 않았고 정렬이나 기본 추출 명령어를 묻는 문제가 나왔다.
- 오름차순 정렬 order by 컬럼
- 소문자 전환 lower(컬럼)
- 중복을 제거하는 ditinct 컬럼
- 그룹화 gruop by 컬럼
2차 시험인 필기 시험은 75분 동안 진행되었고, 직무 능력 평가 30문제 / 직무 상식 평가 40문제가 출제되었다.
온라인으로 진행되었고 코딩테스트는 A4용지와 필기구를 허용해주는 반면에
필기 시험은 오로지 눈으로만 풀 수 있었다. (A4용지 사용 X)
체감상 난이도는 내 기준으로 어려웠으며 총 70문제 중 45문제를 풀었다. 처음에는 빠르게 풀 수 있는 문제들이 간간히 보였지만 뒤로 갈 수록 집중력이 떨어져서 그런지.. 난이도가 높은 느낌이었다. (거의 못품)
전체적으로 잘 본 느낌은 아니어서 합격은 기대하기 어렵겠지만.. 좋은 경험이었고 코딩 테스트와 필기 시험은 정말 꾸준히 준비하는 수 밖에 없다고 다시금 느꼈다. 😂