2022 5월 롯데정보통신 코테 합격 후기 (Software/Infra/Data Engineer 신입채용)

취업 과정|2022. 6. 18. 12:29
728x90

채용 공고 이미지
채용 공고 이미지

 

오늘 (2022.06.18) 롯데정보통신 코테를 봤다.

 

작년 하반기 경험에 의하면 꽤나 쉽게 나왔기 때문에 별다른 생각 없이 맘 편하게 봤는데 한 문제가 꽤 까다로운 것 빼면 대체적으로 쉽게 나왔다.

 

120분에 알고리즘 3문제, SQL 1문제이며 평소 프로젝트할 때 간단한 SQL만 사용해왔기에 솔직히 SQL 한 문제 버리고 알고리즘 다 맞겠다는 마인드였는데 Join을 쓰거나 서브 쿼리문을 사용하는 정도로 나와서 풀 수 있었다.

 

알고리즘 문제도 문자열, 그래프, 리스트 이용하는 문제가 나왔었는데 특히 리스트 이용하는 문제가 필자한텐 상당히 까다롭게 느껴졌다.

 

어떤 알고리즘을 적용해야 할지 아무리 생각해봐도 떠오르지 않아서 흔히 말하는 노가다를 했어야 했는데 대체적으로 쉽게 나왔기 때문에 해당 문제에만 1시간을 쓸 수 있었다.

 

약 20가지 정도의 경우의 수를 일일이 체크하여 3분 남기고 종료할 수 있었는데 역시 모든 시험은 시간 분배가 중요하단 사실을 체감했다.

 

SQL부터 시작해서 쉬워 보이는 문제부터 풀고 1시간 남은 상태에서 마지막 문제도 빨리 끝내야겠다 했지만 이렇게까지 시간이 걸릴 줄은 몰랐기 때문이다.

 

오픈 톡방 반응을 보아하니 다들 그 문제가 어려웠던 건 매한가지인 것 같고 다른 문제도 어렵게 느낀 사람이 있긴 했지만 알고리즘 1문제와 SQL 1문제는 대체로 쉽다고 생각하는 것 같다.

 

따라서 타 기업에 비하면 꽤 쉽게 나오는 편이니 여러 코테 경험이 있는 사람은 그냥 편하게 보면 될 것 같다.

 

결과는 인성 진단 검사와 코테 합쳐서 나오는 것 같으니 발표가 나는 대로 포스팅을 수정하도록 하겠다.

 

 

결과


오늘 (2022.06.23 목) 합격했다는 내용과 함께 면접에 관련된 메일이 왔다.

 

결과 메일
결과 메일

 

어차피 코테도 자신 있었고 이미 면접 본 경험이 있었기에 당연히 합격할 거라 생각하긴 했었다.

 

다만 000명 채용이던 저번과는 달리 00명 채용인데도 불구하고 오픈 단톡방에선 거의 다 합격했다는 소리가 들렸다.

 

보통의 코테에선 4문제가 나오면 2~3문제 컷이 많은데 아예 제출을 못했어도 합격했다는 사람까지 있었다.

 

물론 그게 사실인지 아닌지는 본인만이 알겠지만 거의 나가는 사람이 없는 걸 봐선 인성 테스트까지 합쳐서 결과를 냈고 컷 수준도 상당히 낮은 것 같다.

 

필자의 강점은 코테이므로 코테에서 많이 걸렀으면 그만큼 면접 합격 확률이 올라가기 때문이다.

 

이번에는 티맥스 소프트 면접에서 경험한 것처럼 디테일하게 준비해야겠다.

728x90

댓글()

2022 티맥스소프트 코딩테스트 합격 후기

취업 과정|2022. 6. 11. 13:00
728x90

오늘(2022.06.14 화) 저녁 때쯤 Tmaxsoft 코딩 테스트를 봤다.

 

보통의 대기업들은 지원 인원이 많기도 하고 부정행위 방지를 위해 정해진 시간에 웹캠이나 휴대폰을 이용해 최대한 공정한 환경을 조성하는데 엔픽셀 같이 크지 않은 기업과 마찬가지로 Tmaxsoft는 기한을 정해두고 그전까지 자유롭게 보는 방식이었다.

 

프로그래머스에서 진행했으며 120분 동안 3문제를 풀었다.

 

문제당 40분이지만 그에 비해 난이도는 조금 쉽게 나오지 않았나 싶다.

 

다만 2문제 푸는데 1시간이 걸렸지만 싸피 강의 진행하느라 피곤해서인지 집중을 못 해서인지 마지막 한 문제에서 헤매느라 겨우 10분 남기고 테스트 완료했다.

 

주로 문자열을 다루는 문제가 나왔으며 조합을 사용한 문제도 있었다.

 

평소에 정규표현식을 사용하지 않은 터라 익숙했다면 훨씬 더 빠르고 쉽게 풀었을만한 문제도 나왔다.

 

그렇게 어려운 문제는 나오지 않는 것 같으니 문제를 잘 읽어보고 곰곰이 생각하면 충분히 다 풀 수 있을 것이다.

 

체감상 백준 기준 실버 정도로 나온 것 같다.

 

결과


티맥스소프트는 엄청 빠르게 결과가 나온다.

 

자소서에는 1부터 3 지망까지 선택했었는데 특이하게 1 지망엔 불합격하였으나 다른 전형으로 이관하여 서류를 검토할 수 있었다.

 

블라인드 같은 곳에서 본 얘기로는 학벌을 가장 중요하게 여긴다는데 아마 코테도 크게 중요하진 않을 수도 있겠단 추측을 해본다.

 

필자 같은 경우는 그룹사는 좀 다르더라도 보유하고 있는 기술 스택이 필요한 직무라면 상관없었기에 다른 부서의 같은 직무로 말씀드렸고 화요일(2022.06.21) 9시로 면접 일정이 잡혔다.

 

이번엔 면접 준비를 하면서 담백하게 답변하는 연습을 해야겠다.

728x90

댓글()

2022년 SSAFY 특별 채용 현대오토에버 코딩 테스트 불합격 후기

취업 과정|2022. 6. 11. 12:58
728x90

특별 채용 공고
특별 채용 공고

 

오늘(2022.06.11 토) 현대 오토에버에서 진행한 SSAFY 특별 채용의 코딩 테스트를 진행했다.

 

보통의 기업 코테는 프로그래머스에서 해왔었는데 현대자동차 그룹은 Softeer란 플랫폼을 이용했다.

 

120분 동안 3문제이기 때문에 문제당 40분꼴이라 시간과 비교해 적당한 난이도로 나온 것 같다.

 

다만 요새 알고리즘 문제를 접하지 않아서 체감상 좀 어렵게 느껴졌다.

 

현대가 자동차 기업이라 그런지 차량 컨셉의 문제가 나왔으며 처음 문제를 봤을 땐 다소 막막해서 3문제를 다 읽으면서 약간 고민해보고 다시 1번부터 고민하며 문제를 풀었었다.

 

난이도 때문인지 바로 푸는 방법이 생각나진 않았다.

 

결과부터 말하자면 3문제 중 2문제를 풀었고 1문제는 시간은 많이 남았으나 어떻게 풀어야 할지 명확하게 떠오르지 않아서 헤매다가 결국 포기하게 됐다.

 

특별 채용 공고라 오픈 단톡방도 없어서 대략 응시자들이 어떤 수준으로 제출했는지도 잘 모르겠다.

 

일단 제출한 문제들은 그리디 알고리즘, 조합을 사용했다.

 

처음 문제를 봤을 땐 DP를 사용해야 할지 완전 탐색을 사용해야 할지 고민하느라 조금 어려웠으나 막상 풀이 방법이 떠오르니 구현 자체는 별다른 조건이 없어서 비교적 쉬웠던 것 같다.

 

아마 현대 그룹의 코테는 Softeer란 플랫폼에 익숙해지고 문제를 읽고 곧바로 풀이 방법을 떠올릴 수 있다면 어렵지 않은 난이도가 되지 않을까 싶다.

 

팁이라 할 수 있는 것은 한 문제를 막힌다고 잡고 있는 게 아니라 적절히 시간 배분을 하며 풀 수 있는 문제부터 차근차근 풀고 문제를 자세하게 읽어서 한 번에 이해하는 게 중요한 것 같다.

 

결과 발표 뜨는 대로 포스팅을 수정하도록 하겠다.

 

결과


약 2주 정도 지나고 (2022.06.23 목) 결과 메일이 왔다.

 

 이것저것 하느라 까먹고 있었는데 결과부터 말하자면 불합격했다.

 

싸피 특별채용 전형이라 오픈 톡방도 안 보여서 어느 정도 수준이 합격인진 잘 모르겠으나 3문제 중 2문제를 풀었는데 떨어진 것을 보니 아마 구현 과정에서 놓친 부분이 많지 않을까 생각한다.

 

테스트 케이스를 다 맞았다고 해서 통과는 아니기 때문이다.

 

Softeer란 플랫폼이 어색하기도 하고 자동차 관련된 지문이 어렵게 다가와서 그런지 현대 계열의 코테는 죄다 떨어지는 것 같다.

 

서비스 기업에 집중하는 것이 좋을 것 같다.

728x90

댓글()

신한은행 2022년 상반기 디지털/ICT 수시채용 삼성청년SW아카데미 특별전형 1차 면접 후기(불합격)

취업 과정|2022. 5. 28. 13:20
728x90

오늘(2022.05.25 수) 신한은행 1차 면접을 봤다.

서류 전형을 합격하고 나면 동시에 AI 역량검사, 코딩 테스트, 1차 면접에 대한 안내를 채용 사이트에서 확인할 수 있다.

아마 3가지를 종합적으로 산출하여 2차 면접 대상자를 뽑는 게 아닐까 싶다.

1차 면접은 역시 코로나 때문에 비대면으로 봤으며 사이트는 JOBFLEX를 이용하였다.

사이트로 이동하면 첫 화면에 면접 환경 체크하기, 플러그인 설치하기, 화상면접 시작하기 이렇게 3가지가 있고 환경 체크부터 차례대로 하면 된다.

다만 필자는 분명 다 체크하고 플러그인도 설치했는데 막상 시간 되고 들어가려 하니까 접속 오류가 떴었다......

원래 면접 때 잘 긴장하지 않는데 면접 시작 10분 전부터 접속이 가능한 상황에서 다 체크했다고 생각했지만 막상 접속 오류가 뜨니까 진정할 수가 없었다 ㅠ.ㅠ

그래서 안내 창에 있는 오픈 채널을 통해 연락을 했고 결국 방 번호를 통해 폰의 zoom으로 접속했었다.

근데 웬일..... 원래 폰도 한 번씩 재부팅을 해줘야 되는데 켜 둔 지 오래라 그런지 렉이 걸리는 바람에 2차 멘붕까지 왔었다.

여차 저차 해서 가까스로 접속을 하니 원래 시작 시간인 10분에서 14분 지난 24분에 시작을 하게 됐고 다행히 면접관님들께서 시스템 오류로 시간이 지났으니 최대한 감안하고 진행하겠다 하셨다.

상당히 당황을 많이 한 시점에서 면접을 진행하게 되어 의욕이 앞선 모습이 많이 나오긴 했지만 다행히 질문 자체가 어려운 것은 없었다.

주로 자소서 기반으로 질문이 나왔으며 40% 정도는 인성 질문이 나왔다.

다만 프로젝트 진행 중인 시기라 준비가 미흡한 부분에 대한 답변을 잘못 말한 건 아쉬움이 많이 남았지만 중간중간 "말씀 들어보니 많이 준비하신 것 같네요" 란 말을 들어서 망했다는 느낌은 들지 않았다.

면접 진행이 예정되었다면 반드시 플러그인 같은 것을 꼭 확인하고 실행해도 PC에 따라 적용 안 되는 경우가 있으니 꼭 예비용으로 폰에 zoom을 설치하는 것을 추천한다.

문제가 생기면 바로바로 카톡 채널로 연락하고 면접에 관해선 자신이 경험한 부분에 대해 꼬리 질문을 여러 가지 준비해보는 것을 추천한다.

충분한 준비가 안되었다면 알던 내용도 잘못 말할 수 있고 깔끔하게 정리된 문장으로 답하기 어려울 수 있기 때문이다.

결과 발표가 뜨는 대로 포스팅을 수정하도록 하겠다.

오늘 (2022.06.03 금) 결과 발표가 났다.

나름 어필을 잘했다 생각했는데 막상 불합격 소식을 들으니 씁쓸한 기분이 들었다.

백엔드나 프레임워크에 대한 경험이 없었을 때야 역량 부족인 것을 이해했지만 많이 준비하셨단 말을 듣고도 떨어지니 의욕이 많이 앞선 게 문제가 아닐까 추측만 하게 된다.

역량 면접에서 역량을 충분히 어필했다고 생각하기 때문이다.

어필할 역량을 충분히 쌓아서 맘 편하게 면접에 임했었는데 이젠 싸피를 통해 모의 면접으로 도움을 받아야겠단 생각이 든다.

취뽀하는 그날까지 열심히 달리도록 하겠다!!

728x90

댓글()

싸피 7기 1학기 후기

취업 과정|2022. 5. 21. 15:44
728x90

1월에 시작했던 싸피가 어느새 1학기 수료를 앞두고 있다.

공휴일을 제외한 평일 오전 9시부터 오후 6시까지 스케줄이 잡혀있다 보니 자연스럽게 잠도 줄고 부지런해진 것 같다.

원래도 잠이 많은 편은 아니었지만 스스로 준비를 하다 보니 동틀 때쯤 자서 8시간 정도 뒤에 일어나곤 했는데 강의 때문에 6~7시간 자고 일찍 일어나는 게 습관이 들었다.

또한 싸피를 진행하면서 만족스러울 만큼 많이 배웠다고 생각한다.

싸피의 1학기는 2주 정도의 몸풀기 느낌인 스타트 캠프를 시작으로 알고리즘, 서버, 웹, 프레임워크를 배운다.

솔직히 처음 싸피에 참여하는 내 태도는 "프레임 워크만 배우면 되겠다."였다.

이미 대부분의 기업 코테는 합격선이었으며 팀플이라 소규모 프로젝트였지만 팀장과 팀원의 입장에서 PHP를 이용한 DB 연동 수준의 웹 프로젝트를 여러 번 했었기에 프레임 워크에 대한 경험만 부족할 뿐이지 어느 정도 준비된 취준생이란 착각을 했었다.

심지어 파이썬의 자동화 도구를 이용한 웹 크롤링과 보안성도 떨어지는 md5 암호화 알고리즘을 접목한 경험이 우물 안 개구리처럼 자만심을 부추긴 것 같다.

현실은 간단한 웹에 쉬운 것만 찾아서 간단한 모듈 몇 가지를 사용한 것뿐이었는데 말이다.

물론 알고리즘과 웹 기본을 나갈 땐 비교적 여유롭긴 했다.

이미 알고 있었기 때문에 딱히 집중하진 않았지만 백엔드와 프레임 워크를 배울 땐 맘 편히 쉴 수 있는 날이 거의 없었던 것 같다.

1학기는 하나의 프로젝트에 점차 배운 것들로 살을 붙여 나가는 방식이며 2명의 팀을 이룬다.

그렇기 때문에 중간중간 내 것으로 만들지 못하고 지나가면 뒷부분들에 영향을 받게 되고 더군다나 두 명이서 진행하기 때문에 팀원에게 피해를 끼치기 싫어서 더더욱 열심히 하게 됐다.

보통의 학사 팀플은 4~5명이 진행하느라 부분적으로만 경험 가능하고 흔히 말하는 프리 라이더(Free Rider)처럼 책임감 떨어지게 행동하는 경우도 은근히 많지만, 2명이 진행하기 때문에 전체적으로 경험 가능하고 서로 책임감 있게 행동하여 원활한 협업이 이루어진다는 게 큰 장점 같다.

많이 배웠지만 그중에서도 크게 역량 성장을 이룬 점을 뽑자면 스프링 부트와 Mybatis를 이용하여 REST FUL 한 백엔드 구축, Vue를 이용한 SPA (Single Page Application) 형태의 프론트 엔드 구현, 여러 가지 Api 사용, 유지보수를 고려한 기능 분리(디자인 패턴 적용 등) 이렇게 뽑을 수 있을 것 같다.

처음 학습하고 사용하느라 많이 헤매고 어려워했던 부분도 있었지만 고생한 만큼 다양한 것을 배우고 면접에서도 풍부한 내용으로 어필할 수 있겠다는 근거 있는 자신감이 생기기도 했다.

특히 정해진 틀 안에서 단순 반복적으로 코드만 양산하는 코더(Coder)가 아닌 개발자(Developer)가 되기 위해서 스스로 어떻게 하면 효율적으로 코드를 관리할 수 있을까 고민을 많이 했던 것 같다.

물론 처음부터 그렇게 생각하진 않았지만 유튜브 라이브 강의를 들으며 교수님께서 이 코드를 왜 이렇게 구분하여 작성했는지 설명을 듣다 보니 필자 또한 막무가내로 작성된 프로젝트 코드를 수정하려 열어봤을 때 엄청 막막했던 경험이 떠올라서 실무를 대비한다는 생각으로 차후 유지보수를 고려해 고민하며 코드를 작성했다.

이렇게 생각하고 고민하는 개발자가 되겠다는 초기 마음 가짐을 잘 실행한 것 같아 뿌듯하기도 하다.

이제 절반이 지났고 2학기는 7주에 하나씩 총 3개의 프로젝트를 진행한다고 한다.

개인적으로 취업 준비로는 프로젝트만 한 것이 없다고 생각하기 때문에 기대 반 설렘 반이다.

물론 2학기가 끝나기 전에 취업에 성공한다면 더할 나위 없이 기쁘겠지만 안되더라도 분명 싸피를 수료할 즈음엔 어디라도 갈 수 있는 충분한 역량을 쌓을 수 있을 것이라 자신한다.

1학기 프로젝트를 마무리하면 1주일의 방학과 함께 한 달 정도 잡페어 등을 하며 여유로운 기간이 있다는데 남은 2학기를 달리기 위해 충분한 휴식을 취할 생각이다.

프로젝트 마무리를 하고 종강식을 진행했는데 기대치 않았던 프로젝트 최우수상을 받게 되었다.

사실 디자인도 이쁘지 않고 입과 목표로 삼았던 면접에서 충분히 어필할 수 있도록 강점을 갖기 위해 주로 고민을 많이 했었는데 그게 다른 팀들에게 아이디어를 주고 점수를 후하게 받은 게 아닌가... 싶다.

프로젝트 상은 다른 팀의 평가로만 이루어지는데 리허설 발표 때 상당히 반응이 좋았기 때문이다.

솔직히 반응이 좋았어도 1등 까진 생각지 못했었는데 어안이 벙벙하긴 했다.

아마 명세서를 위주로 구현하려는 다른 팀과 다르게 우리 팀이 자랑할 수 있을만한 아이템을 강점으로 삼아 발표를 한 게 큰 것 같다.

국비지원 때 파이썬으로 웹 크롤링을 접목하고 이를 실무자분께 호평받은 경험을 살려 이번에도 보안 취약점을 대비한 암호화 알고리즘, 뉴스 웹 크롤링, UX를 고려한 다음과 카카오 API 사용, 이메일 발송을 구현했고 강점으로 삼았기 때문이다.

덕분에 이 글을 쓰면서도 13팀 중 1등을 해서 상을 받았단 사실에 상당히 기분이 좋다.

개발자가 되기 위해 고민하는 사람이 있다면 일단 지원부터 해보란 말을 하고 싶다.

싸피를 통해 제대로 된 프로젝트 경험을 쌓으며 면접에서 충분히 자기 어필을 할 수 있기 때문이다.

또한 협업 하는 경험과 교수님들께 다양하게 배우는 내용이 피가 되고 살이 되어 분명 테스트나 면접에서 자신감의 원동력이 될 것이다.

비전공자는 파이썬반, 전공자는 자바반이며 전공자 중에 따라가기 벅찬 느낌을 받는 사람은 비전공자반으로 갈 수도 있다.

본인이 의지만 있다면 아주 좋은 기회란 것을 장담할 수 있다.

이 글이 개발자를 고민하는 사람들에게 도움 되길 바란다.

728x90

댓글()

신한은행 2022년 상반기 디지털/ICT 수시채용 삼성청년SW아카데미 특별전형 코딩 테스트 후기

취업 과정|2022. 5. 14. 12:28
728x90

오늘 (2022.05.14) 신한은행 디지털/ICT 부문 코딩 테스트를 봤다.

다른 기업들과 마찬가지로 프로그래머스에서 화상캠까지 연결하여 봤는데 해당 과정에서 다소 불편했던 점은 대부분의 기업들은 해당 링크와 전형 설명을 메일로 보내 확인하기 편리했지만 신한은행은 해당 채용 사이트의 마이 페이지로 들어가야 확인할 수 있다는 점이었다.

마이 페이지에는 코딩 테스트 안내는 물론 AI 역량 검사, 추후 면접 관련 내용까지 함께 있었다.

각설하고 신한 은행의 코딩 테스트는 처음 봤는데 다른 은행권들의 코테 수준에 비하면 다소 어려운 편인 것 같다.

오픈 단톡방의 반응을 보면 최근 시행된 국민은행보다 어려웠고 신한이 유독 이번 코테가 어려웠다고 한다.

물론 필자처럼 보통의 IT기업(네이버, 라인, 카카오)의 코테를 목표로 준비하였다면 충분히 다 풀 수 있는 건 사실이다.

다만 새마을금고 중앙회, IBK 기업은행 등의 코테를 본 경험에 의하면 역시 은행권 치고는 어렵게 나온 것 같다.

150분 동안 알고리즘 4문제, SQL 1문제가 나오므로 문제당 30분 정도이고 난이도도 그에 맞게 나온 것 같다.

근데 SQL은 상당히 어렵게 느껴졌다.

평소에 SQL은 기본적인 CRUD 기능만 사용하기에 준비가 안되어있기도 해서 문제를 읽어보고 기본적인 문법에 중첩 질의(Nested Query) 수준이라면 풀어볼 생각이었지만 그보다 더 복잡하게 나와서 처음으로 SQL문제를 포기한 것 같다.

알고리즘 문제는 다소 헷갈려서 시간을 오래 잡아먹은 문제도 있긴 했지만 IT기업의 코테를 목표로 준비했다면 충분히 다 풀 수 있는 수준이었다.

어려운 개념이 나온 것도 아니고 완탐, 조합, 구현 수준으로 나왔다.

특히 ssafy에서 알고리즘 강의시간에 순열 조합을 많이 풀어봐서 익숙한 편이었다.

팁이라 할 수 있는 것은 전체적으로 문제를 훑어보고 선택과 집중이 필요한 것 같다.

필자는 sql문제를 보고 해결하기 어렵다 판단하여 2분 만에 바로 포기했으며 가장 구현이 쉽고 바로 구현 방식이 떠오르는 문제부터 시작했다.

그렇게 푸니 대략적으로 3번은 7분, 1번은 20분 정도 걸려서 남은 시간 동안 여유롭게 2, 4번을 해결할 수 있었다.

머리를 써야 하다 보니 시간에 쫓기면 그만큼 문제 해결이 더뎌지기 때문이다.

단톡방의 투표를 보니 3, 2, 1, 4, 5, 0 순으로 제출이 많았다.

따라서 추측컨대 3 솔에서 채용인원에 따라 최대 2 솔까지가 합격이 아닐까 생각해본다.

결과 메일 오는 대로 수정하도록 하겠다.

728x90

댓글()

[BOJ] Python 백준 4485번 녹색 옷 입은 애가 젤다지? 골드 4

728x90

https://www.acmicpc.net/problem/4485

 

4485번: 녹색 옷 입은 애가 젤다지?

젤다의 전설 게임에서 화폐의 단위는 루피(rupee)다. 그런데 간혹 '도둑루피'라 불리는 검정색 루피도 존재하는데, 이걸 획득하면 오히려 소지한 루피가 감소하게 된다! 젤다의 전설 시리즈의 주

www.acmicpc.net

 

문제 풀이


왼쪽 위칸인 [0,0]에서 출발 후 오른쪽 아래칸인 [N-1, N-1]에 도착하는 경로를 생각하는 그래프 탐색 문제였다.

 

다만 흔히 Queue나 Stack을 이용하여 BFS, DFS로 탐색하는 방법이 아닌 Priority Queue를 사용한 다익스트라 문제였다.

 

이 문제에서 중요한 점은 거리의 최소가 아니라 비용, 즉 가중치의 최소가 중요하기 때문이다.

 

상당히 돌아가는 경로라 하더라도 비용이 최소면 해당 경로를 택하기 때문에 가중치의 합을 기준으로 최소 비용 경로를 고려해야 한다.

 

Priority Queue를 이용한 원리는 다음과 같다.

 

먼저 시작 노드에서 이동 가능한 노드를 가중치의 합과 함께 Priority Queue에 넣는다.

 

가중치의 합이 가장 작은 노드를 선택한 뒤 해당 노드에서 이동 가능한 노드를 가중치의 합과 함께 Priority Queue에 넣는 행동을 [N-1, N-1]에 도착할 때까지 반복한다.

 

[N-1, N-1]에 도착하면 해당 가중치를 저장하고 반복을 종료한다.

 

한 번은 중간에 이동 가능한 노드인지 체크하는 과정에서 이미 방문한 노드가 최소 가중치의 합을 보장하는지 의문을 품는 질문을 본 적이 있었는데 결론부터 말하자면 각 노드에서 가장 먼저 선택되었을 때의 가중치가 최소다.

 

Priority Queue를 통해 매번 가장 작은 가중치의 합을 선택하기 때문에 두 번째 방문할 때는 같거나 클 수밖에 없기 때문이다.

 

이제 전체 코드를 통해 설명하도록 하겠다.

 

import heapq
inf = float('INF')
dir = [[1, 0], [-1, 0], [0, 1], [0, -1]]
res_num = 1
while True:
    n = int(input())
    if n == 0:
        break
    else:
        graph = []
        queue = []
        res = [[inf for i in range(n)]for j in range(n)]
        for i in range(n):
            graph.append(list(map(int, input().split())))
        heapq.heappush(queue, (graph[0][0], 0, 0))
        res[0][0] = graph[0][0]
        while len(queue) > 0:
            temp = heapq.heappop(queue)
            if temp[1] == n-1 and temp[2] == n-1:
                break

            for i in range(len(dir)):
                dy = temp[1]+dir[i][0]
                dx = temp[2]+dir[i][1]
                if 0 <= dy < n and 0 <= dx < n and res[dy][dx] > temp[0]+graph[dy][dx]:
                    res[dy][dx] = temp[0]+graph[dy][dx]
                    heapq.heappush(queue, (temp[0]+graph[dy][dx], dy, dx))
        print("Problem %d: %d" %(res_num,res[n-1][n-1]))
        res_num += 1

 

4번째 줄까지는 Priority Queue를 사용하기 위한 heapq 선언, 방문하지 않은 노드는 무한대 선언, 노드의 방향 선언, 문제 번호 선언이다.

 

5번째 줄의 while문을 통해 0을 입력받을 때까지 반복적으로 문제를 처리했다.

 

12번째 줄의 res는 노드의 최솟값을 갱신하는 리스트로 마지막에 res [N-1][N-1]을 출력하면 된다.

 

15번째 줄은 시작 노드의 가중치와 y좌표, x좌표 순서대로 넣음으로써 자동으로 MinHeap 구조인 heapq에서 최소 가중치를 꺼내도록 하였다.

 

18번째 줄의 반복문은 Priority Queue가 빌 때까지 계속 원소를 꺼내는 작업을 하는데 도착지점에 도달한다면 탈출하도록 구현하였다.

 

방향 탐색을 하기 위해 22번째 줄에서 이동 가능한 노드인지 체크한 후 Priority Queue에 넣어주도록 구현하였다.

 

결과 화면
결과 화면

 

구현 방법이나 알고리즘 측면에서 어려운 문제는 아니었지만 우선순위 큐를 거의 사용해보지 않았다면 충분히 떠올리기 어려울 수 있다고 생각한다.

 

필자 또한 다양한 그래프 문제를 경험해봤지만 습관처럼 BFS, DFS를 사용했기에 해당 문제를 보고 바로 Priority Queue를 떠올리진 못했다.

 

보다 유연하고 다양하게 생각하도록 노력하는 게 중요한 것 같다.

728x90

댓글()

라인 2022 상반기 신입 공개 채용 필기 테스트 후기(불합격)

취업 과정|2022. 4. 2. 13:25
728x90

오늘(2022.04.02) 라인 필기 테스트를 봤다.

 

라인 필기 테스트만 3번째라 익숙해질 만도 한데 여전히 자신 있게 "많이 맞췄다!"라고 할 수 없다는 게 많이 아쉽기도 하다.

 

필기 테스트는 컴퓨터공학 기준으로 한 번쯤은 강의를 들어본 CS(Computer Science) 전반에 걸쳐서 문제가 나온다.

 

깊게 물어보는 것은 물론 강의에서 언급하지 않거나 "이런 게 있다" 하고 넘어간 부분에서도 나오기 때문에 열의를 가지고 다양하게 자료를 찾아보는 습관이 중요한 것 같다.

 

예를 들면 이번에 나오진 않았지만 TCP에서 네트워크 상의 효율을 위해 개발된 Nagle Algorithm의 수도 코드를 기반으로 출제될 수 있는 것처럼 직접적으로 강의를 하진 않아도 관심 가지고 찾아봄으로써 다양한 지식을 쌓는 게 중요하다.

 

범위도 넓은데 그 넓은 범위에서 골고루 나오는 것도 평소 실력을 테스트하겠단 의도 같다.

 

또한 이론만 아는 게 아니라 코드로 구현할 수 있는 부분(OOP, SQL 등)은 직접 구현해봐야 익숙하게 풀 수 있는 문제들이 꽤 있었다.

 

체감상 저번 필기 테스트보다는 조금 쉬운 편으로 나온 것 같지만 아마 합격하기엔 부족하지 않을까 생각한다.

 

그래도 다행인 점은 저번 시험 볼 때는 자바를 잘 모르는 상태라 OOP에 관한 지식을 외우다시피 했기 때문에 좀 더 디테일하게 물어보면 헷갈리거나 모르는 상황이 많았는데 SSAFY를 통해 자바와 OOP개념을 배운 결과 이해를 기반으로 접근할 수 있었다는 게 그만큼 성장한 것 같다.

 

원래 외우는 걸 별로 안 좋아하고 이해하는 것이 장기적으로 도움된다 생각하기 때문이다.

 

여담으로 수능 볼 때도 근의 공식조차 외우지 않은 상태에서 들어갔다. (시간도 넉넉했었고 30초면 충분히 유도할 수 있기 때문에)

 

필기 테스트엔 자신이 없어서 SSAFY 복습도 하고 다른 코테도 보면서 기대 없이 결과를 기다려야겠다.

 

결과 메일 오는 대로 포스팅을 수정하도록 하겠다.

 

불합격 후기


오늘 (2022.04.11 월) 필기 테스트 결과 메일이 왔다.

 

결과 메일
결과 메일

 

필기 테스트 이후 9일 만에 메일이 왔는데 예상은 했지만 그래도 불합격 메일을 확인하니 좀 씁쓸하기도 했다.

 

아무래도 결과가 서류와 필기 테스트를 합쳐서 나오다 보니 서류가 부족했는지 CS가 부족했는지 감이 잡히지 않는다.

 

또한 CS를 준비한다 해도 범위가 너무 방대하고 어느 정도 수준까지 해야 될지 감도 잡히지 않아서 라인은 나한테 상당히 어려운 기업 같다.

 

매번 코테는 쉽게 통과해도 번번이 필기 테스트에서 막히기 때문이다.

 

공채 시즌이라 몇몇 기업에 넣는 중인데 자소서를 조금 더 가다듬도록 해야겠다.

728x90

댓글()