문제 복기 겸 준비 과정 개선할 겸 적어본다..
난생 처음 겪어본 기업 코테.. 두근두근...
KT는 프로그래머스 환경에서 시행된다길래
프로그래머스에서 제공하는 코딩테스트 > 알고리즘 고득점 kit 풀어보고, 연습문제 풀면서 환경에 익숙해지는데 힘썼다.
알고리즘 고득점 Kit는 말 그대로 자료구조 & 알고리즘 공부하는데 도움이 됐다.
📌 일시 및 환경
2024.10.19일 오전 10시~12시
총 23문제였고, 프로그래머스 환경에서 실시됐다.
📌 문제복기: 프로그래밍 3문제 + 객관식 20문제
프로그래밍 3문제 전부 구현 문제들이었고, 객관식은 AI/NW/클라우드 부문 답게 관련 지식을 물어봤다.
- NW 쪽 지식 많이 물어봄 (라우터, OSI 7계층, AI 모델, 패킷 단위, NW 알고리즘 등등..)
시험 시작하자마자 프로그래밍 3문제 살펴봤는데, 3번은 못 풀 것 같아서 일단 pass.. 1,2번 번갈아봤다.
프로그래밍 1번 문제는 접두어 + 완전탐색 + 문자열 합친 느낌이었다.
2번 문제는 배열을 사용하긴 했지만, 가중치 있는 그래프였을까.. 싶다.
느낌(?)으로만 얘기하는 이유는 내가 정답인지 모르겠어서.. ㅋㅋ
여튼 그래서 한 문제라도 맞춰보자 싶어 1번에 전부 쏟아부었다. 1번 문제는 테스트케이스 전부 통과시켰다.
📌 1번 문제.
아래 표처럼 문제지문, 답이 주어진다. 최소한의 문자로 답을 암기해보려고 한다.
예를 들어서, 문자 A는 반드시 답이 B여야 한다. A="abcd" B = 2 처럼! 이때 암기해야 하는 문자 개수의 최소값은?
문제지문 | 답 |
abcdef? | 2 |
abcd? | 2 |
bbab? | 3 |
bbabab? | 1 |
cacabc? | 5 |
cacsdc? | 4 |
cacsz? | 3 |
최소한의 문자와 답을 기억하기 위해서 아래와 같이 문자를 추출해내야한다.
a 2
babb? 3
babba 1
caca 5
cacsd 4
cacsz? 3
🍀 풀이 과정
해시 맵을 사용해 (문제지문, 답) 쌍으로 저장하고, 답(value) 기준으로 오름차순 정렬을 한다.
이때 정답마다 문자열을 step1: []에 임시저장하고, 문자열 간에 완전탐색을 하며 접두어를 1차적으로 찾는다.
(아래 코드는 기억나는대로 복기해보았다.)
step1 =[]
for i in range(1,6):
tmp=[]
for k,v in smap.items():
if v == i:
tmp.append(k)
tmp.sort() # 문자열 오름차순 정렬 ex. ['abcd?', 'abcdef?']
# 각 tmp별로 문자 줄이기
now = 0
about = now+1
while about < len(tmp):
for i in range(len(tmp[now])):
if tmp[now][i] == "?":
# now가 about를 대신할 수 있으므로 now만 추가하고 while문 빠져나감
elif tmp[now][i] != tmp[about][i]:
# 도중에 다른 걸 발견한 거니까 둘 다 추가하고 break
그럼, 위에서 주어진 표에 대해 아래와 같은 결과가 나온다.
step1 = ['abcd?', 'bbab?', 'bbabab?', 'cacsz?', 'cacsdc?', 'cacabc?']
step2 =[]를 새로 정의하고,
완전탐색을 통해 앞 뒤로 비교하면서 줄일 수 있는 건 또 줄인다.
이때도 now, about, i_tmp를 사용했다.
📢 느낀 점/ 개선점/ 준비해야 할 것
🍀 프로그래밍은 알고리즘, 자료구조를 쓸 줄 아느냐도 중요했지만, 실제 상황을 이해하고 효율적으로 구현해낼 수 있냐? 를 많이 물었다는 점이다. 구현 문제가 중요해 보였다.
🍀 객관식은 AI, NW 관련 분야를 모집하는 거였어서 관련 객관식 문제가 나왔고 파이썬 실행결과 문제도 있었다.
⭐ 자료구조 공부
⭐ 구현 문제 풀이 필요
'취업 주르륵' 카테고리의 다른 글
[2024/12/12 회고록] 기본에 충실하기 (2) | 2024.12.12 |
---|---|
[현대 오토에버/FAIL] 2024년 10월 신입 사원 채용 후기 (0) | 2024.11.19 |