반응형
250x250
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 벽부수고이동하기 파이썬
- 파이썬 정렬
- 사회조사분석사2급실기신청
- 공모주 청약
- 알고리즘
- 사회조사분석사 2급 필기 시험시간
- 사회조사분석사2급실기신청꿀팁
- 시물레이션
- 오미크론 자가격리
- 사회조사분석사 2급 필기 요약정리
- 사회조사분석사 2급 접수
- 현대엔지니어링 수요예측
- 사회조사분석사 2급
- 사회조사분석사 2급 공부방법
- 공모주
- DFS
- 현대엔지니어링
- 백준 알고리즘
- 사회조사분석사 2급 필기 공부방법
- 2월공모주
- 머신러닝
- 너비우선탐색
- 공모주청약
- 백준
- 사회조사분석사 2급 기출문제집
- 사이킷런
- 사회조사분석사 2급 독학
- BFS
- 정렬
- 그리디
Archives
- Today
- Total
세상을 바꾸는 데이터
[이코테 코드 리뷰] - 구현 예제 및 실전 문제 본문
이번 포스트에서는 "이코테"에 있는 구현 유형 예제 및 실전 문제를 공부하고 복습한 것을 코드로 적어본다.
코딩테스트 공부 - Github 사이트
https://github.com/ndb796/python-for-coding-test
GitHub - ndb796/python-for-coding-test: [한빛미디어] "이것이 취업을 위한 코딩 테스트다 with 파이썬" 전체
[한빛미디어] "이것이 취업을 위한 코딩 테스트다 with 파이썬" 전체 소스코드 저장소입니다. - GitHub - ndb796/python-for-coding-test: [한빛미디어] "이것이 취업을 위한 코딩 테스트다 with 파이썬" 전체 소
github.com
예제 1) 상하좌우
# 상하좌우
n = int(input())
x, y = 1, 1
plans = input().split()
# L, R, U, D에 따른 이동 방향
dx = [0, 0, -1, 1]
dy = [-1, 1, 0, 0]
move_types = ['L', 'R', 'U', 'D']
# 이동 계획을 하나씩 확인
for plan in plans:
# 이동 후 좌표 확인하기
for i in range(len(move_types)):
if plan == move_types[i]:
nx = x + dx[i]
ny = y + dy[i]
# 공간을 벗어난 경우 무시
if nx < 1 or nx > n or ny < 1 or ny > n:
continue
# 이동 수행
x, y = nx, ny
print(x, y)
예제 2) 시각
# 시각
h = int(input())
count = 0
for i in range(h+1):
for j in range(60):
for k in range(60):
# 매 시간 안에 '3'이 포함되어 있다면 카운트 증가
if '3' in str(i) + str(j) + str(k):
count += 1
print(count)
실전 1) 왕실의 나이트
# 왕실의 나이트
input_data = input()
row = int(input_data[1])
col = int(ord(input_data[0])) - int(ord('a')) + 1
# 나이트가 이동할 수 있는 방향
steps = [(2,1), (2, -1), (-2, 1), (-2, -1),
(1, 2), (-1, 2), (1, -2), (1, -1)]
count = 0
# 8가지 방향 이동가능한지 확인
for step in steps:
next_row = row + step[0]
next_col = col + step[1]
if next_row >=1 and next_row <=8 and next_col >= 1 and next_col <= 8:
count += 1
print(count)
실전 2) 게임 개발
# 게임 개발
n, m = map(int, input().split())
# 방문한 위치를 저장하기 위한 맵을 생성하여 0으로 초기화
d = [[0] * m for _ in range(n)]
# 현재 캐릭터의 x 좌표, y 좌표, 방향 입력받기
x, y, direction = map(int, input().split())
d[x][y] = 1 # 현재 좌표 방문 처리
# 전체 맵 정보를 입력받기
array = []
for i in range(n):
array.append(list(map(int, input().split())))
# 북, 동, 남, 서 방향 정의
dx = [-1, 0, 1, 0]
dy = [0, 1, 0, -1]
# 왼쪽으로 회전
def turn_left():
global direction
direction -=1
if direction == -1:
direction = 3
# 시물레이션 시작
count = 1
turn_time = 0
while True:
# 왼쪽으로 회전
turn_left()
nx = x + dx[direction]
ny = y + dy[direction]
# 회전한 이후 정면에 가보지 않는 칸이 있을 경우 이동
if d[nx][ny] == 0 and array[nx][ny] == 0:
d[nx][ny] = 1
x = nx
y = ny
count += 1
turn_time = 0
continue
# 회전한 이후 정면에 가보지 않는 칸이 없거나 바다인 경우
else:
turn_time += 1
# 네 방향 모두 갈 수 없는 경우
if turn_time == 4:
nx = x - dx[direction]
ny = y - dy[direction]
# 뒤로 갈 수 있으면 이동하기
if array[nx][ny] == 0:
x = nx
y = ny
# 뒤가 바다인 경우
else:
break
turn_time = 0
# 정답 출력
print(count)
게임 개발이 코드 작성하기가 가장 어려웠던 거 같다. 할 수는 있을 거 같은데 막상 하면 잘 안되고 코드가 복잡한 구현,,
다시 복습해야지...
교재 링크:
https://book.naver.com/bookdb/book_detail.nhn?bid=16439154
이것이 취업을 위한 코딩 테스트다 with 파이썬
IT 취준생이라면 누구나 입사하고 싶은 카카오ㆍ삼성전자ㆍ네이버ㆍ라인!취업의 성공 열쇠는 알고리즘 인터뷰에 있다!IT 취준생이라면 누구나 가고 싶어 하는 카카오, 라인, 삼성전자의 2016년부
book.naver.com
728x90
반응형
'PS Study > 이코테 문제풀이' 카테고리의 다른 글
[프로그래머스] 실패율 - 파이썬 (76) | 2022.03.03 |
---|---|
[백준 10825번] 국영수 - 파이썬 (61) | 2022.03.02 |
[백준 16234번] 인구 이동 - 파이썬 (59) | 2022.02.27 |
[2020 KAKAO BLIND RECRUITMENT] 문자열 압축 - 파이썬 (40) | 2022.02.01 |
Comments