CJ ENM 커머스부문(온스타일)에 지원한 동기는 무엇이며, 입사 후 포부에 대해 구체적으로 작성해주세요. (1,500자 이내) ① 지원동기 및 해당직무를 ENM 커머스부문(온스타일)에서 수행하고자 하는 이유 ② 해당 직무 입사 후 성장 포부를 포함하여 작성
[질문2]
지원 직무에 본인이 적합하다고 판단할 수 있는 이유를 구체적인 경험 / 나만의 차별화 포인트 / 그동안의 노력과 도전 측면에서 실제 사례 중심으로 구체적으로 작성해 주세요. ① 대학생활과 졸업 이후 다양한 활동, 공모전 등의 경험과 ②이를 통하여 배운점과 발현된 역량, 위기를 극복한 사례를 포함하여 작성(1,500자 이내)
[질문3]
CJ 온스타일은 라이프스타일 쇼핑 큐레이터로 고객 취향 쇼핑 플랫폼을 지향합니다. 본인이 관심 있는 라이프스타일 분야와 본인만의 (차별화된) 트렌드캐칭 노하우 작성해 주세요. (1,500자 이내)
서류 통과시 코딩테스트 안내 메일이 옵니다.
2. CJAT & 코딩테스트 초대 메일
3. CJAT & 코딩테스트 입장 전
4. 본 테스트
2시간 동안 4문제를 풀도록 출제됩니다.
문제1. 유형 : 정렬
문제2. 유형 : ?
문제3. 유형 : 순열
문제4. 유형 : ?
5. 후기
CJAT은 그냥 인적성 검사보는거라 맘편히 보시면 됩니다.
sort(key = lambda) 내가 원하는 기준으로 정렬할줄 몰라서 1번문제 못품
2번문제는 유형을 모르겠음
join 제대로 쓸줄몰라서 3번문제 풀 때 직접구현함
4번문제도 모든 경우의 수 다 비교해야 할거같은데 할 줄 모르겠음 공지에 없지만 IDE pycharm 같은거 쓸 수 없음(키고 풀다가 경고메시지 날라와서 바로 껐습니다.) 외부 검색엔진 사용 불가, 프로그래머스내 파이썬 공식문서 검색만 가능
테스트 환경 내 어떠한 모니터, TV도 있으면 안됩니다.
회의실 내 TV 큰게 있었는데 40인치 TV 가리고 테스트 보라고 메시지와서 다른 회의실로 옮겨서 봤습니다.
기본적으로 제공 동의 등 항목체크하고 노트북 화면 공유, 노트북 캠 연결, 신분증 촬영 후 제출, 핸드폰 카메라 연결 등의 사전작업을 미리 체험해보게 됩니다. (테스트 당일날도 다시 똑같이 진행해야 됨)
또한 듀얼모니터 사용이 안되어 노트북화면 1대로만 시험을 치뤘습니다. ★
그리고 촬영 중에 다른 외부인이 비춰지면 안되고 독립된 공간에서 치뤄야 한다는 조항도 있어서 집에서 치뤘습니다.
4. 본 테스트
3시간 동안 4문제를 풀도록 출제됩니다.
문제1 유형 : DFS 방식으로 풀었습니다.
문제2 유형 : 트리 + DP
root에서 시작해서 dfs 를 활용한다.
dfs(x)
: x를 root로 하는 rooted tree에서 x의 모든 자식들의 값 계산해주는 함수
이렇게 함수 정의를 잘해주면 dfs에서 바로 계산이 가능하다.
많이 나오는 예시이므로 암기할 것 ★
트리 + DP 의 가장 쉬운 버전이라고 생각하시면 됩니다. ★
함수의 역할 자체를 잘 정의해주면 이걸 호출하는 것 만으로도 자식들의 결과를 자신의 결과에 쓸 수 있기 때문에 작은 문제의 결과로 큰 문제의 값을 빠르게 계산할 수 있죠.
문제3 유형 : DP
문제4 유형 : 단순 구현
5. 소감
트리와 DP 유형의 문제를 평소 풀지 않았던 터라 생각하는 로직은 맞았으나 코드로 구현하기 어려웠습니다.
그래서 문제1과 문제4만 풀어서 제출했으며 문제2와 문제3은 풀지못하였습니다.
또한 IDE에서 프로그래머스로 옮기는 과정에서 오타가 생겨 테스트 케이스를 돌릴 때 에러가 계속 발생했는데 에러 발생 여부만 알려주고 어느 줄에 발생했는지도 안알려줘서 해결하는데 시간낭비를 좀 많이 하였습니다.(※ 주의)
어느정도 연습했던 분이라면 3솔까지는 무난하게 하시지 않았을까 하는 생각이 듭니다.
6. 코드
# Q1.
# C3
# => 52
import sys
si = sys.stdin.readline
n = int(si())
a = [[0 for _ in range(10)] for __ in range(10)]
for _ in range(n):
coord = si().strip() # 병사의 좌표, D7 => 4행 7열
row = ord(coord[0]) - ord('A') + 1
col = int(coord[1])
dirs = [[-1, -1], [1, -1]]
for dr, dc in dirs:
for len in range(-7, 8):
nr = row + dr * len
nc = col + dc * len
if 1 <= nr <= 8 and 1 <= nc <= 8:
a[nr][nc] = 1
ans = 0
for i in range(1, 9):
for j in range(1, 9):
if a[i][j] == 0:
ans += 1
print(ans)
# Q2.
# 6 121
# 1 2
# 1 3
# 3 4
# 3 6
# 3 5
import sys
si = sys.stdin.readline
n, k = map(int, si().split())
children = [[] for _ in range(n + 1)]
hasParent = [0 for _ in range(n + 1)]
for _ in range(n - 1):
par, child = map(int, si().split())
children[par].append(child)
hasParent[child] = 1
value = [0 for _ in range(n + 1)]
def DFS(x):
# x의 모든 자식들에 대해 value 계산해주기
if not children[x]: # x 밖에 없는 상황
value[x] = 1
return
for child in children[x]:
DFS(child)
value[x] += value[child]
for i in range(1, n + 1):
if not hasParent[i]:
DFS(i)
total_value_sum = sum(value)
multiply = k // total_value_sum
for i in range(1, n + 1):
print(value[i] * multiply, end=' ')
# Q3.
# 4 4
# 2 1 2 1 3 4 4 3
# 1 2 3 4
# => 4
import sys
INF = 1000000009
si = sys.stdin.readline
n, m = map(int, si().split())
a = list(map(int, si().split()))
smells = list(map(int, si().split()))
# 각 향기마다 A랑 B위치 기억해두기
place = [[-1, -1] for _ in range(n + 1)]
for i in range(n * 2):
smell = a[i]
if place[smell][0] == -1:
place[smell][0] = i
else:
place[smell][1] = i
def get_dist(x, y):
# x번 위치에서 y번 위치로 가는 최단거리 계산
if x > y:
x, y = y, x
return min(y - x, n * 2 - (y - x))
# 배열 정의
dy = [[INF, INF] for _ in range(m + 1)]
dy[0][0], dy[0][1] = get_dist(0, place[smells[0]][0]), get_dist(0, place[smells[0]][1])
for i in range(1, m):
prev = smells[i - 1] # 직전에 맡은 향 번호
cur = smells[i] # 이번에 맡은 향 번호
for cur_k in range(2):
# dy[i][cur_k] 을 계산해줄 차례
curPosition = place[cur][cur_k]
prevA, prevB = place[prev][0], place[prev][1]
dy[i][cur_k] = min(dy[i - 1][0] + get_dist(prevA, curPosition), # 직전에 A번 위치 선택
dy[i - 1][1] + get_dist(prevB, curPosition)) # 직전에 B번 위치 선택
print(min(dy[m - 1]))
# Q4.
import sys
si = sys.stdin.readline
n = int(si())
a = [0] + list(map(int, si().split()))
b = [0 for _ in range(n + 1)]
for i in range(1, n + 1):
for j in range(i, n + 1, i):
b[j] += a[i]
for i in range(1, n + 1):
print(b[i], end=' ')
문제2의 경우 문제 풀이 해설을 보니깐 문제를 잘못이해했음을 알게되었습니다. 반복되는 패턴이 많은 문자열을 지워야 하는건데 단순히 알파벳 갯수만 세서 많은것만 제외시켜버렸는데 결과적으로 단순히 알파벳 갯수만 세서 많은 것만 제외시켜버리는 방법이 정해임을 알게되었습니다.(의도치 않게 바로 정해로 풀게됨) 문제3의 경우 처음 들어본 유형에 어떻게 풀어야할지 감이 안와 포기했습니다.
5. 소감
코딩 테스트에서 풀어서 제출한 첫 경험이라 2솔했다는 것에 매우 만족합니다.(비록 테스트 케이스 통과지만)
영문 레쥬메를 작성해서 제출해야 됩니다. 따로 양식은 주어지지 않고 예전에 학교에서 영문 이력서 특강을 들어서 받은 양식이 있었는데 그 양식대로 제출했습니다. 작성 내용으로는 학력, 관련활동, 동아리활동, 스킬, 자기소개 등을 작성해서 제출했습니다.
2. 안내 메일
사진처럼 메일이 오고 기재된 날짜 내에 테스트를 치루기만 하면 됩니다. 안내대로 사전등록 과정을 거치고 본테스트에 입장하기 사전 테스트할 수 있는 링크도 있어 이걸로 사전 연습을 해볼 수 있습니다.
3. 테스트 입장 전
챌린지 시작 Google 온라인 챌린지에 오신 것을 환영합니다.
과제 형식: Google의 온라인 챌린지는 사용자의 코딩 능력을 평가하기 위해 설계되었습니다. 두 개의 코딩 질문을 완료하는 데 60분의 시간이 주어집니다. 다음은 과제를 시작하기 전에 주의할 몇 가지 중요한 사항입니다.
I: 성공적으로 로그인하려면 다음 3단계를 주의 깊게 읽어보십시오.
1단계: 전자 메일 주소로 로그인한 경우 플랫폼에서 로그아웃한 후 인식 모드로 로그인하십시오.
2단계: 챌린지 플랫폼에서 Google 온라인 챌린지 ID와 패스키로 로그인하라는 메시지가 표시됩니다.
3단계: Google의 온라인 도전을 위해:
— 사용자 이름 = 고유한 Google 온라인 챌린지 ID(예: 123456789012) (전자 메일 사용 안 함)
— 암호 = 챌린지 암호(예: 123456)
— 새 계정에 가입하거나 기존 로그인을 계속하는 등 다른 로그인 방법을 사용하지 마십시오. 자신에게 할당된 챌린지 ID와 패스 키를 사용하여만 온라인 챌린지에 로그인하고 참여할 수 있습니다.
참고: "당신(abc@xyz.com)은 이 테스트에 초대되지 않았습니다. 테스트 관리자에게 문의하십시오. Google Support googleonlinechallenge-ticket@google.com" - Google Online Challenge ID 또는 암호를 잘못 입력하여 도전에 액세스했음을 의미합니다. 1~3단계를 다시 수행하십시오! II: 도구에 익숙해지는 중
실제 도전을 하기 전에 도전 플랫폼의 연습 링크를 사용하여 코딩 환경에 익숙해지십시오. 연습 챌린지의 문제 수와 연습 챌린지의 기간이 실제 챌린지와 다를 수 있으니 참고하시기 바랍니다. 연습 라운드에서 평가를 받지 않습니다. 챌린지가 라이브로 진행되면 어디에서 챌린지를 찾을 수 있는지 알아보려면 아래 이미지를 참조하십시오.
III: 도전을 위하여
할당된 온라인 챌린지 ID 및 암호를 사용하여 도전을 시도하고 있는지 확인합니다. 챌린지가 시작되면 타이머를 일시 중지할 수 없습니다. 도전은 한 번에 완료해야 합니다. 시스템이 Hacker Earth의 호환성 요구 사항을 충족하는 것이 좋습니다. 안정적인 작동 인터넷(최소 속도 5Mbps)을 사용하는 것이 좋습니다. 모바일 인터넷/핫스팟을 사용하지 마십시오. 설치된 확장이 테스트 환경을 방해하지 않도록 무명 또는 개인 창에서 테스트를 시도하는 것이 좋습니다. 다른 창과 탭을 모두 닫아 방해가 되지 않도록 하는 것이 좋습니다. 가장 편한 코딩 언어를 선택하십시오. 코드 중간에 언어를 변경할 경우 수정해야 할 수 있습니다. 최종 답변을 제출하기 전에 테스트 인터페이스의 브라우저 창이나 탭을 닫지 마십시오. 시스템이 갑자기 종료되거나 시간이 부족해도 당황하지 마십시오. 지금까지의 진행 상황은 자동으로 저장됩니다. 테스트 시간이 만료되기 전에 네트워크 문제가 발생할 경우 브라우저를 새로 고치고 테스트에 다시 연결하십시오. 문제가 있는 경우 Google 온라인 챌린지 팀(googleonlinechallenge-ticket@google.com)으로 연락하십시오.
Google은 지원자들이 온라인 챌린지에 한 번 도전하기를 기대하고 있습니다. 온라인 챌린지에 두 번 이상 응시한 것으로 판명된 응시자는 온라인 챌린지 이용 약관을 위반하므로 온라인 챌린지에서 자동으로 자격을 잃게 됩니다. 도전 결과는 온라인에 게시되지 않음을 알려드립니다. 기타 질문은 FAQ를 참조하십시오. 행운을 빌어요!
4. 본 테스트
본테스트는 2문제로 진행됩니다. 사전 테스트를 해보면 알겠지만 문제가 영어로 주어집니다. 평소 백준이랑 프로그래머스만 이용하다보니 문제 해석이 곧바로 되지않아 시간이 오래걸린 점 다른 IDE를 사용할 수 없고 검색 역시 사용할 수 없습니다.
해당 테스트페이지를 빠져나가는 시도를 할 경우 경고메시지가 표시됩니다. 경고가 누적되면 테스트를 강제종료시킵니다.(사전 테스트에서 검색하면서 풀다가 강제종료당함;.;) hackerearth라는 플랫폼에서 진행되며 사전에 해당 플랫폼에 익숙해지면 좋다고 생각합니다. 답안 틀이 미리 제공되어있고 함수만 작성하면 되는 형태입니다. 입출력 함수를 작성하게끔 되어있어(혹은 작성된 상태로 주어져서)백준이랑 프로그래머스랑 적절히 섞은 느낌이 납니다.
출제된 문제 유형은 정리해서 추후에 올려보도록 하겠습니다. 제 기준에는 어려워서 한 문제도 못풀었습니다 ㅠ.ㅠ