반응형

은근 회사 면접 후기를 보러오시는 분들이 많은거 같다. 그래서 면접 보러다녔던 회사들 몇개 끄적여보려 한다.
 
일단 오늘 공유할 것은 비즈테크아이라는 회사다. 예전에 비즈테크파트너스라는 사명이었는데 행정,교육 / IT 이렇게 분할해가지고 IT쪽 담당은 비즈테크아이가 하게 되었다.
 
CNS의 자회사고 주로 CNS대신 파견을 적극적으로 나간다. 예전에 LGD다닐 때, 파주에 비즈테크아이분들이 A게이트쪽 2층에서 상주하고 계신걸 본적이 있다. 아마 그분들은 스마트팩토리 담당이셨던거 같다.
 
몇번 사내 시스템 관련해서 데이터가 이상하게 뽑힐 때, 메일 주고받은적이 있는데 대부분은 유지보수 쪽이지 않을까싶다.
 
 
아무튼 이 회사는 전형이 굉장히 빠르다.
나는 인프라쪽이라 코테를 본적은 없지만, 코테 허용 언어가 Java라고만 전해들었다.
 
이 회사는 특이하게도 LG커리어스에 공고를 올리지만 사람인이나 잡코리아에다가도 올려놓는다. 그리고 거의 잡코리아 위주로 보는거 같다. LG커리어스는 면접이 끝날 때까지도 서류접수마감이라고 뜨고 그 어떤 전형단계로도 넘어가지는 변화는 없었다. 아마 안보는듯싶다.
 
그러니까, 잡코리아에다 꼭 지원하자. 언제 읽었는지 알림도 뜨니까 이건 좋은 기능같다.
 
## 1. 서류
마감 후, 2일 뒤인가? 서류 열람했다고 떴다. 그리고 열람 이후 2일 뒤 쯤인가에 문자로 서류합격 소식을 전해줬다.
보니까 불합격자는 통보 안하는거 같다. 결과 하나 통보하는게 뭐가 그리 어려운지.. 요즘도 통보 안하는 기업이 있구나 싶었다.
 
이 회사는 생각보다 서류를 굉장히 많이 거르는거 같다. 잡코리아 대비 면접에 간 사람은 한... 1/4~1/5정도? 밖에 안되었던거 같다. 
근데, 자소서를 전혀 읽지 않았다는게 티가 났고 아마 관련 스펙(교육이수사항이나 자격증)이나 중고신입인지를 많이 보는것 같았다.
 
## 2. 인적성
인적성은 LG Way Fit Test를 친다. 오랜만에 이 화면봐서 추억에 빠졌었다. 이건 LG 인적성 봐본사람은 따로 준비안해도 될 것이다. 그냥 똑같다. 다만 서류 발표 이후에 2~3일 뒤에 바로 응시해야했으니 상당히 진행이 빠른건 맞다.
인적성에선 전혀 거르지 않는 느낌이었다. 다시 말해서 서류를 뚫었다면 면접까지는 그냥 거의 다 간다.
 
## 3. 면접
인적성은 응시하고 바로 다음 날 합격 발표가 왔으며, 면접은 바로 2일 뒤였다. 일정 하나는 화끈한 회사였다. 서류 마감 후 2주안에 모든걸 끝낸다. 면접은 대면이었고 다대다였다. 
 
결론부터 말하자면 면접은 떨어졌었다. 하지만 정말 붙어도 가기 싫은 인상을 제대로 남겨준 회사였다.
자소서는 읽지않고온게 티가났으며, 포트폴리오 역시 첨부해드렸는데 뽑아오지도 않으셨다. 직무에 대한 질문은 전혀없고 인성 위주의 질문이었고 납득이 가는 공격이 아닌 그냥 비난 섞인 질문이었다.
시작부터 일은 재미없을 것이다, 우린 연봉도 낮고 인상률도 낮으니 기대하지마라. 이런 얘기가 오갔다. 
뭐지싶었다 ㅎㅎ
 
면접 발표는 2일 뒤에 났다. 다른 회사보단 그래도 진짜 빠르게 알려준다는게 좋다.

반응형
반응형

앞서 2월,3월 채용과 5월 인턴 채용 때문인지  이번 5월 수시채용은 틈새 시장이 된 느낌이었습니다.
서류 발표가 나도 별 반응이 없었고 코테 본 사람도 그리 많진 않았던 것 같아요.
 
그렇게 어느새 코테까지 마치고 후기나 짤막하게 적으러 왔습니다.
문제는 총 3문제였고, 3시간을 줍니다. 원래 얘네 문제 내는 스타일보면 백트래킹 좋아해서 꼭 한문제 씩 넣고, 알고리즘 다양하게 알고있는지 평가하는 듯한 느낌이었는데요.
최근 들어 기조가 좀 바뀐 것 같아요. 이번에는 3문제 다 그냥 구현이었습니다.
 
1번 (난이도 백준 브론즈 4~5, 프로그래머스 Lv0~1)
단순 수학문제를 구현하는 것이었습니다. 형변환만 신경쓰면 되었고 히든테케랄 것도 딱히 없을 것 같아서 별다른 검토 안하고 넘어갔습니다.
 
2번 (난이도 백준 실버 1~2, 프로그래머스 Lv2)
백준에 많이 유사한 문제가 있습니다. 시뮬레이션 유형이었는데 백준에 나온 문제보단 조건 더 붙어서 까다로웠습니다. 그 문제가 실버4였어서 이번 문제는 실버1~2쯤 되지 않았을까해요. 근데 시간초과를 우려할만한 문제는 아니였고 말 그대로 그냥 빡구현이었습니다. 삼성 준비하셨으면  감사합니다!!!!!! 하고 풀었을 듯.
다만, 테케가 2개 뿐이라 놓친거 있나 계속 print 찍어보면서 설명대로 가고 있는지 꼼꼼히 확인하느라 시간 많이 썼었습니다. 다행히 로직에 맞게 잘 흘러간거 같았고... 테케는 그냥 임의로 2~3개 정도 넣어보고 통과하길래 넘어갔습니다.
 
3번 (난이도 백준 골드4..5?, 프로그래머스 Lv2)
백준에 느낌이 비슷한 문제가 있었는데, 그 문제는 다익스트라를 쓰는 골3짜리였습니다. 하지만, 이 문제는 다익스트라는 아니었고 그냥 얘도 빡구현이었습니다. 다만 골3보다 낮다 생각했지만, 제가 풀었던 다익스트라 골3보다 훨씬 어려웠어요. 아시다시피 특정 알고리즘 들어가면 쉬워도 티어 높은 날먹문제들이 있는데 대표적인게 골드에선 다익스트라, 플로이드와샬이라 생각해서 ㅎㅎ... 빡구현 골드4~5가 다익스트라 골드2~3보다 어려운거 같습니다.
암튼, 그래프 내에서 이럴때 어떻게 움직이고, 저럴때 어떻게 움직이는지 그냥 하라는대로 구현인 문제였습니다. 다만, 얘는 제가 확신이 들진 않아서 틀렸다 생각하고 있어요.
 
암튼 결론 평소 CNS답지 않은 문제였고, 구현에 강하신 분들한테 많이 유리한 시험이었다~ 라고 판단!
저는 3제출 (2솔) 이라 생각듭니다잉. 3솔한 분들이 많을거 같긴한데, 제 빅데이터 상 3솔이 3솔이 아닌 분들도 많다는걸 알기에 완벽한 2솔만 하면 면접 갈거라 생각합니다. 물론 제가 3제출 1솔일수도 ㅋㅋㅋ 엌ㅋ...
붙으면 또 면접후기로 올게요..

5.31 수정  반례가 발견되서 1솔로 전락ㅎㅎ.. 안봐도 탈락같습니다
 
 
아래는 제가 CNS 기출 구글링했으니 참고하시길
2020~2021년에 나왔던 유형 목록
- 구현 (단순 구현이며 시뮬레이션 스타일 X) , 다익스트라, DP (LIS) , 이분 탐색 , 그리디 , DP (LCS) , 백트래킹 (굉장히 자주냄) , 플로이드 와샬 , BFS
 
2022년에 나왔던 유형 목록
- 구현 (단순 구현) , 구현 (시뮬레이션 스타일) , 다익스트라 ,  DP , 백트래킹 , BFS
 
2023년 2월
- 구현,그리디,DP (토요일) /  구현,백트래킹,트리의 동형사상 (일요일)
 
2023년 3월
- 구현, 해싱 , DFS+DP (DX, Cloud 등등)  / 구현,구현,구현 (ERP)
 
2023년 5월
- 구현(단순 구현),구현 (시뮬레이션),구현(시뮬레이션+비트마스킹) [수시] / 구현,구현,구현 [인턴] 

반응형
반응형

응시하신 분들은 다들 알겠지만, 4대 SI기업 (SDS, CNS , C&C, 오토에버) 중에서 코테 난이도가 제일 쉬운 곳입니다.

다른 기업들과 견주어봐도 오토에버만큼 쉬운 곳은 거의 없어요.

 

3문제에 3시간을 주는데, 2문제는 구현입니다. 나머지 1문제는 구현이긴 하지만 시간초과를 신경써야하는 유형입니다.

대체로 오토에버는 이런 식인거 같고, 코테는 단지 참고용이고 자소서에서 지원직무에 대한 이해도 + 확실한 지원동기를

더 보는 거 같습니다. 이건 다른 SI들과는 확실히 방향이 달라요.

 

그래도 난생 처음 코테가 처음이신 분들한테 위 기업의 후기를 공유하는게 도움이 될 것 같아 대외비를 지키는 선에서 적고자 합니다.

 

Q. 원래 코테가 다 이런가요?

A. 아닙니다 ㅎ 이것보다 몇배는 더 노력하셔야 다른 기업들도 쉽게 풉니다.

 

Q. 무슨 문제를 풀어야 오토에버 코테에 도움이 되나요

A.  3문제 3시간을 주지만, 3문제 모두 1시간 안으로 풀수도 있을만큼 쉬운데 얘네는 좋아하는 유형이 쉽게 보이는 편입니다. 2문제정도는 그냥 단순구현이지만, 하나는 시간초과를 유도하는 문제가 항상 나와요.

무슨 유형을 풀라고 딱 정해서 말씀드리긴 좀 그렇고, 일반적으로 for문만 무지성으로 돌렸을 때, 일반적인 테케는 맞지만 범위가 많이 큰 테케에서 '시간초과'가 나는 유형들. 이걸 풀기 위해 필요한 스킬들이 백준에 다 있습니다.

 

예시 문제를 하나 드리자면

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

 

2559번: 수열

첫째 줄에는 두 개의 정수 N과 K가 한 개의 공백을 사이에 두고 순서대로 주어진다. 첫 번째 정수 N은 온도를 측정한 전체 날짜의 수이다. N은 2 이상 100,000 이하이다. 두 번째 정수 K는 합을 구하기

www.acmicpc.net

이런 문제 풀 때, 별다른 개념 없이 무지성 for문으로만 풀면 시간초과를 만날거에요. 이런 문제들을 만났을 때, 시간초과를 피할 방법이 있어요. 그 방법과 관련된 유형들을 여러번 푸시면 도움됩니다. 오토에버는 이런거 위주로 내요.

 

 

Q. 남들 다 3솔이라는데 저는 아니에요.

A. 테케 결과는 예시로 주는거 빼곤 알려주지 않아요. 3솔이라 해도 3제출이 더 맞는 표현일 거에요. 

저라면 문제 딱 만났을 때, 아 이건 3솔 못하겠다싶으면 애매한 3제출보다  확실한 2솔을 노리고 시간 분배할 거 같습니다.

 

Q. 테케 어떻게 만드나요.

A. 저는 꼼꼼하진 않은 편이라 테케는 3~4개 정도만 만듭니다.

1. 가장 최소 케이스 (입력 값이 1 ~ 100000 이라 할 때, 1을 입력했을 경우 나오는 결과값을 넣어보기)

 

2. 정렬된 입력 케이스 넣기 (예시가 정렬되지 않은 경우) or 정렬되지 않은 입력 케이스 넣기 (예시가 정렬된 경우)

이건 설명을 잘 못하겠네요. 주어진 테스트 케이스가 일부러 정렬된 상태로 주어지는 경우가 있는데, 그것만 보고 착각하는 유형이라고... 해야 하나...  죄송해요 이건 설명을 잘 못하겠네.  

 

3. 가장 최대 케이스 넣어보기 (입력 값이 1 ~ 100000 이라 할 때, 100000을 입력했을 경우 나오는 결과값을 넣어보기)

이건 난수 생성해서 만듭니다. 각 언어에 난수 생성을 위한 라이브러리들이 있을거에요. 그거 참고해서 임의로 뽑아서 넣어보시면 됩니다. -> 이 경우는 우리가 결과값을 쉽게 계산할 수 없으니 시간초과가 나는지 아닌지 용도로만 확인합니다.

 

4. 주어진 테스트 케이스에서 살짝만 변형해보기

 

이런식으로 4개만 해보고 통과된다, 넘어갑니다.

 

 

반응형
반응형

LG그룹은 CNS나 유플러스빼곤 다른 곳 코테 후기가 잘 안보인다. 

LG전자는 예전에 내가 산학장학생 때 한번 응시했었는데, 그 후기를 많이들 검색하시는거 같다.

좀 더 자세한 후기로 찾아왔다.

 

문제는 공유하지 못합니다!

 

체감난이도는... 현대오토에버,한화시스템보다는 어렵고 LG CNS보단 살짝 쉽습니다.

LG전자같은 경우는 예전에도 느꼈지만 좋아하는 유형이 꽤 확고한 편이에요.

백준이나 프로그래머스를 열심히 푸셨다면,  "어? 이 문제는?" 하실수도 ^^

 

1번.

브론즈5도 아깝습니다. 그냥 백준 새싹티어 수준이에요. 사실상 1~3분 안에 끝내고 나머지 두문제를 각각 한시간으로 잡고 풀어야 하는 수준이었습니다.

 

2번.

골드5정도 됩니다. 얘는 근데 꽤 유명한 유형이라 익숙하신 분들은 더 쉽게 푸셨을거 같아요. 근데 이런 문제를 처음 봤다? 시간초과 마주하기 쉬워요. 푸는 방법은 다양한 편이지만 자료구조에 익숙하시다면 실버같다고 봐도 괜찮을거 같네요.

저는 백준에서 자주 본 유형이라 그 문제를 풀었을 때 처럼 접근했습니다.

 

3번.

골드3~4정도 됩니다. 그래프탐색 + 백트랙킹 문제인데 이거 제대로 푸신분들은 많이 없을거 같긴해요.

개인적으로 얘는 삼성 기출스러웠습니다. 아이디어는 떠올랐지만, 손이 안가더라구요. 좀 풀다가 제출하고 그냥 2번으로 가서 엣지케이스 계속 돌려보면서 놓친거 있나 찾아봤습니다.

 

결론은 2솔(일까?) 3제출했습니다.

 

다만 서버 이슈로 선택적 재응시 기회를 부여받아서, 응시할지말지는 고민 좀 해봐야겠네요 ㅋㅋ

반응형
반응형

필자는 SCSA 교육생으로 1차 전환시험을 공채랑 같이 봄.

오후반이었고, 2번 보고 헛웃음 나옴. 뭔 카카오 2차에서 볼 법한 API구현스러운 자료구조 문제 나옴.

이제 4시간으로 늘어나면서 확실히 이런 기조로 가는구나 싶음.

 

1번은 시뮬이었는데 설계하다 꼬여서 줟망함. BFS로 최단거리 짜되, 탐색에 우선순위가 있고, 배열회전하고~ 3중리스트로 extend, clear 열심히 시키면서  사람들 이동시켰는데 중간에 꼬여서 망함.

 

2번은 그냥 이악물고 깡구현 박음. 테케는 통과하는데 자료구조 안썼어서 백퍼 시간초과나있을 듯.

마치 작년 산타의 선물공장과 같은 ㅎㅎ

 

 

전환 탈 각 보이는데 이제 걍 대놓고 다른 회사 막 지원해야겠다.

반응형
반응형

4월 7일 금요일에 응시했습니다. 학교다닐때, 재학생 신분으로 채용연계 인턴을 지원했던 회사였는데 그땐 서류탈했었지만 이번엔 붙여줬네요 허헣. 일사천리로 코테까지 빠르게 보고 왔습니다.

 

꽤 전형속도가 빠른 회사입니다!

 

이 회사는 코테 정보가 많이 없길래 글 남겨요.

예전에 구글링해서 찾은거로는 90분인가? 120분인가?에 10문제 나왔다했는데  이번에는  그렇진 않구요.

120분에 알고리즘 4문제, SQL 2문제가 나왔습니다.

 

필자는 SQL을 정말 잠깐만 했기 때문에 2번은 못풀었는데 후기들 보니까 SQL은 진짜 거저줬다고 하더군여. 1번은 2시간? 만 잠깐 공부한 저도 풀었고  2번은 distinct , count, group by 쓰는 문제였다 합니다. JOIN같이 복잡한건 안냈대여.

 

알고리즘은 4번빼고는 다 쉬웠습니다. 사실 4번도 어려운건 아닌데 저는 시간초과 났을거라 생각되네요 ㅋㅋ

1번은 그리디+정렬  (백준에 보물이라는 문제와 유사)

2번은 백트랙킹.....이지만 조합써도 시초 안날정도로 데이터 크기 작았습니다.

3번은 자료구조를 이용한 단순 구현   (백준에 스택이라는 문제와 유사하나 난이도는 살짝 더 어려움)

4번은 문자열 + dfs입니다.  (저는  트리구조 짜서 순회하고 있었는데 가만보니 결국 dfs로 가곤 있었던 듯 합니다.)

 

4번 제외하고는 효율성 크게 안따져도 될 문제들이었습니다. 4번이 데이터 크기가 최대 10만? 이었던거 같고  2번은 조합쓰면 터지냐마냐로 화제였는데 뽑는 개수가 4개로 고정되어 있었고 데이터 크기가 최대 20이였어서 절대 안터졌던거로 생각하고 풀었었습니다.

 

알고리즘은 2번,4번이 가장 언급 많이 되었었는데 제가 봤을 땐.. 2번은 크게 어려운건 아니었던거 같아요. 조합써도 안터지는 문제면 사실 어려운건 절대 아닙니다.

 

말은 이렇게했어도 알고리즘 3문제 (1,2,3번) / SQL 1문제 (1번) 이렇게 풀어서 6문제 중 4솔이라 생각됩니다. 올솔하셨다는분들이 많아서 안될거 같지만... SQL 공부 안한 제 탓이져 뭐..!

 

 

 

아무튼 알고리즘 난이도들은 백준 실버1~5 수준이였던거 같고..  SQL은  프로그래머스 Lv 1 ~ 2 기준이었습니다.

하지만 테케를 2개밖에 안주고 제출하면 결과를 안알려줘서 본인이 직접 테케 넣어봐야 합니다.

나름의 함정픽이라 생각된 테케들 넣어보면서 디버깅했으니... 4솔이라 생각할래요!!

반응형
반응형

나머진 다 쉬웠는데, 가장 가까운 경로에 있는 애를 어떻게 먹으러갈지 구현하기 힘들었던 문제.

우선순위가

1. 자기보다 크기가 작은 물고기가 2마리 이상인 경우 가장 가까이에 있는 것

2. 거리가 같은 경우에는 행과 열이 작을 수록.

 

이건데 1번을 건너뛰고 자꾸 2번 우선순위로 가가지고 힘들었음.

다른 골3에 비해 얘가 좀 더 어려웠던 느낌

import sys
from collections import deque
sys.stdin = open('111.txt')

input = sys.stdin.readline

N = int(input().rstrip())
graph = []
for col in range(N):
    graph.append(list(map(int,input().rstrip().split())))
    for row in range(N):
        if graph[col][row] == 9:
            sy,sx = col,row # 상어 위치 저장
            graph[col][row] = 0
    

q = deque()


dx,dy = [1,0,-1,0],[0,1,0,-1]
shark_size = 2

# 물고기 찾으러 감
def search():
    visited = [[-1]*N for _ in range(N)]
    visited[sy][sx] = 0 # 상어 시작 위치
    q.append((sy,sx))
    
    while q:
        y,x = q.popleft()
        for i in range(4):
            ny = y+dy[i]
            nx = x+dx[i]
            if 0<=ny<N and 0<=nx<N:
                if visited[ny][nx] == -1:
                    if -1<=graph[ny][nx] <= shark_size:
                        visited[ny][nx] = visited[y][x]+1
                        q.append((ny,nx))
                        
    return visited


def eating(visited):
    min_check = int(1e9)
    for col in range(N):
        for row in range(N):
            if 1<=graph[col][row] < shark_size:
                if visited[col][row] != -1:
                    if visited[col][row] < min_check:
                        min_check = visited[col][row]
                        sy,sx = col,row
                        
    if min_check == int(1e9):
        return False # 더 이상 먹을게 없다는 뜻
    
    return sy,sx,min_check

time = 0
eat_cnt = 0 # 물고기 먹은 횟수
while True:
    visited = search()    
    result = eating(visited)
    
    if result == False:
        print(time)
        break
    
    sy,sx = result[0],result[1] # 상어 재 시작 위치
    time += result[2]
    graph[sy][sx] = 0
    eat_cnt += 1
    
    if eat_cnt >= shark_size:
        shark_size+=1
        eat_cnt = 0
반응형
반응형

회전하는 방식에서 상당히 애를 먹음. 이 부분만 잘 처리하면 나머진 기본적인 플러드필이다.

# N은 격자 사이즈, Q는 레벨 횟수
import copy
from collections import deque
N,Q = map(int,input().split())

_N = 2**N # 제곱 수라했으니까.

ice = []
for col in range(_N):
    ice.append(list(map(int,input().split())))

level = list(map(int,input().split()))

dx,dy = [1,0,-1,0],[0,1,0,-1]

### 위에 입력 이상 없음 ###
for idx in level:
    k = 2**idx # 레벨 단위로 해야하니까
    for col in range(0,_N,k):
        for row in range(0,_N,k):
            temp = []
            for small_col in range(col,col+k):
                temp.append(ice[small_col][row:row+k])

            for small_col in range(k):
                for small_row in range(k):
                    # 시계방향 회전
                    ice[col+small_row][row+k-small_col-1] = temp[small_col][small_row]

    
    ice_check = [[0]*_N for _ in range(_N)]
    for col in range(_N):
        for row in range(_N):
            cnt = 0
            for i in range(4):
                ny = col+dy[i]
                nx = row+dx[i]
                if 0<=ny<_N and 0<=nx<_N and ice[ny][nx]>0:
                    cnt +=1

            ice_check[col][row] = cnt

    for col in range(_N):
        for row in range(_N):
            if ice_check[col][row] < 3: # 인접 얼음이 3개 미만이면
                if ice[col][row] > 0: # 그리고 그 중심에 얼음이 있다면
                    ice[col][row] -= 1


### 위에꺼 다 끝내고 나면!
def bfs(y,x):
    global ccnt
    q = deque()
    q.append((y,x))

    while q:
        y,x = q.popleft()
        for i in range(4):
            ny = y+dy[i]
            nx = x+dx[i]
            if 0<=ny<_N and 0<=nx<_N:
                if not visited[ny][nx] and ice[ny][nx] > 0:
                    visited[ny][nx] = True
                    ccnt+=1
                    q.append((ny,nx))

    return ccnt


arr = []
visited = [[False]*_N for _ in range(_N)]
ccnt = 0
for col in range(_N):
    for row in range(_N):
        if ice[col][row] > 0 and not visited[col][row]:
            visited[col][row] = True
            ccnt = 1
            result = bfs(col,row)
            arr.append(result)

tot = 0
for col in range(_N):
    for row in range(_N):
        tot += ice[col][row]

if tot!=0:
    print(tot)
    print(max(arr))
    
else:
    print(tot)
    print(0)
반응형

+ Recent posts