Coding Test

2018년 카카오 신입 공채 1차 코딩 테스트 - 비밀 지도

엘호리스 2018. 8. 12. 19:41

http://tech.kakao.com/2017/09/27/kakao-blind-recruitment-round-1/


카카오 신입 공채 1차 코딩 테스트로 나온 문제 중 가장 첫 번째인 비밀 지도 풀이입니다.


딱히 python이 주언어가 아니지만 한참 python을 학습하였기 때문에

문제 풀이를 python으로 한번 도전 해봤습니다.


사실 코드를 치기 전 문제를 읽고 해석하는데(?) 많은 시간을 소비한 건 안 비밀.


feat. 난 여전히 웹이 안되고 책이 없으면 아무 코드도 못 친다.ㅋㅋ


주피터 환경에서 해설과 겸해 코드를 첨부합니다.

https://drive.google.com/file/d/1f-57rCEhrqkH4-HYkfSKAlfPhqV5GHal/view?usp=sharing



py파일 다운로드

kakao_sg.py


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
# 카카오 알고리즘 테스트 - 비밀 지도
 
# 사용자로부터 n 값 입력받기
#  example : 5를 입력해보세요
 
= int(input("n변수 입력 : "))
 
# 리스트 변수 초기화
# arr1 : 지도1 값 리스트
# arr2 : 지도2 값 리스트
# arr_add : 지도1 + 지도2 값 리스트
 
arr1 = []
arr2 = []
arr_add = []
 
# 사용자로부터 지도1, 지도2 값 입력받기
# example : { 9, 20, 28, 18, 11 } 을 입력해보세요
# example : { 30, 1, 21, 17, 28 } 을 입력해보세요
 
for i in range(n):
    arr1.append(int(input("arr1의 {}번째 값 입력 : ".format(i+1))))
for i in range(n):
    arr2.append(int(input("arr2의 {}번째 값 입력 : ".format(i+1))))
 
# 지도1 값과 지도2 값을 2진수 OR 논리합 하기"""
 
for i in range(n):
    arr_add.append(bin(arr1[i] | arr2[i])[2:].replace('0',' ').replace('1''#'))
 
# 출력하기
# example : 출력 결과 ['#####', '# # #', '### #', '#00##', '#####']
 
print(arr_add)
 
# Example
# n = 5
# arr1 = [9, 20, 28, 18, 11]
# arr2 = [30, 1, 21, 17, 28]
# 출력  ['#####', '# # #', '### #', '#__##', '#####']
cs