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
- 구읍뱃터맛집
- 영종도디저트
- 정글만리
- 서울 부모님과 식사
- 영등포 가볼만한 곳
- 서울로인
- 인천맛집
- 을왕리데이트
- 현백 디저트
- 산정호수 한화리조트
- 서빙로봇
- 마살라 커리
- m1000RR
- 글로우펏
- 남양주 여행지
- 책
- 서울역 상견례
- 구읍뱃터디저트
- 송도 오마카세
- 바다앞꼬막집
- 영종도맛집
- 이색데이트
- 차덕분
- 포천 관광지
- 청키파이
- 중국
- 조정래
- 포천 가볼만한 곳
- 가성비 오마카세
- 룸식당
Archives
- Today
- Total
ISTP의 간단명료 블로그
[프로그래머스] 캐릭터의 좌표 / 배열의 덧셈 본문
문제

풀이
def solution(keyinput, board):
answer = [0,0]
for step in keyinput:
if step=="left":
temp = [x+y for x,y in zip(answer, [-1,0])]
elif step=="right":
temp = [x+y for x,y in zip(answer, [1,0])]
elif step=="up":
temp = [x+y for x,y in zip(answer, [0,1])]
elif step=="down":
temp = [x+y for x,y in zip(answer, [0,-1])]
if abs(temp[0])<=board[0]//2 and abs(temp[1])<=board[1]//2:
answer = temp
return answer
다른사람 풀이
def solution(keyinput, board):
x_lim,y_lim = board[0]//2,board[1]//2
move = {'left':(-1,0),'right':(1,0),'up':(0,1),'down':(0,-1)}
x,y = 0,0
for k in keyinput:
dx,dy = move[k]
if abs(x+dx)>x_lim or abs(y+dy)>y_lim:
continue
else:
x,y = x+dx,y+dy
return [x,y]
- 딕셔너리 사용
배운점
- 배열의 덧셈
- [1,2,3] + [4,5,6] 👉 [1,2,3,4,5,6] 이 된다...
- [5,7,9]로 만드려면 아래 방법 활용 필요
- [list1[i] + list2[i] for i in range(len(list1))]
- [x+y for x,y in zip(list1, list2)]
'풀다' 카테고리의 다른 글
| [프로그래머스] 문자열 밀기 / find 함수 (0) | 2023.06.11 |
|---|---|
| [프로그래머스] 로그인 성공? / := 바다코끼리 연산자, 딕셔너리 get (0) | 2023.06.10 |
| [프로그래머스] 이진수 더하기 / int, bin, oct, hex (0) | 2023.06.10 |
| [프로그래머스] 구슬을 나누는 경우의 수 / python factorial, comb (0) | 2023.06.10 |
| [프로그래머스] 문자열 계산하기 / eval 함수 (0) | 2023.06.10 |