/date 24.10.06.
📌 1) 숫자 찾기
https://school.programmers.co.kr/learn/courses/30/lessons/120904
def solution(num, k):
answer = 0
for i in str(num):
if i== str(k):
answer = str(num).index(i) + 1
break
else:
answer = -1
return answer
📌 2) K의 개수
https://school.programmers.co.kr/learn/courses/30/lessons/120887
def solution(i, j, k):
answer = 0
for n in range(i, j+1):
for num in str(n):
if str(k) in num:
answer += 1
return answer
📌 3) 숨어 있는 숫자의 덧셈 (2)
https://school.programmers.co.kr/learn/courses/30/lessons/120864
import re
def solution(my_string):
answer = 0
numbers = re.findall(r'\d+', my_string)
for i in numbers:
answer += int(i)
return answer
풀다 말았던 문제 전부 해결 완료!
📌 4) 캐릭터의 좌표
https://school.programmers.co.kr/learn/courses/30/lessons/120861
def solution(keyinput, board):
answer = []
x, y = 0, 0
for key in keyinput:
if key == "left":
x -= 1
elif key == "right":
x += 1
elif key == "up":
y += 1
else:
y -= 1
if abs(x) > board[0]//2:
if x > 0:
x = board[0]//2
answer.append(x)
else:
x = -board[0]//2
answer.append(x)
else:
answer.append(x)
if abs(y) > board[1]//2:
if y > 0:
y = board[1]//2
answer.append(y)
else:
y = -board[1]//2
answer.append(y)
else:
answer.append(y)
return answer
처음엔 이렇게 작성했고 당연히 오답. 코드가 국경을 넘을 정도로 길다^_^,, 수정 렛츠고
def solution(keyinput, board):
x, y = 0, 0
x_limit = board[0] // 2
y_limit = board[1] // 2
for key in keyinput:
if key == "left":
x -= 1
elif key == "right":
x += 1
elif key == "up":
y += 1
elif key == "down":
y -= 1
x = max(-x_limit, min(x_limit, x))
y = max(-y_limit, min(y_limit, y))
return [x, y]
✔️다른 게 아니라 범위를 지정하고 그 범위를 넘어가는 값이 x, y값이 된다면 범위로 값을 조정해 주는 것이 까다로웠다. 그래서 x_limit, y_limit으로 한계값을 미리 지정해 주고, 최종 x y값을 지정하는데 활용하였다.
📌 5) 직사각형 넓이 구하기
https://school.programmers.co.kr/learn/courses/30/lessons/120860
def solution(dots):
x_values = [dot[0] for dot in dots]
y_values = [dot[1] for dot in dots]
width = max(x_values) - min(x_values)
height = max(y_values) - min(y_values)
return width * height
📌 6) OX 퀴즈
https://school.programmers.co.kr/learn/courses/30/lessons/120907
def solution(quiz):
answer = []
for q in quiz:
arr = q.split("=")
if eval(arr[0]) == int(arr[1]):
answer.append("O")
else:
answer.append("X")
return answer
📌 7) 종이 자르기
https://school.programmers.co.kr/learn/courses/30/lessons/120922
def solution(M, N):
if M == 1 and N == 1:
return 0
elif M == 1 or N == 1:
return max(M, N)-1
else:
return min(M, N)*(max(M, N)-1) + min(M, N) -1
✔️ 사실 그냥 M*N -1한 값을 Return 하면 된다... 그렇지만 이건 수학문제가 아니라 코딩문제니까...
'학습 기록 > 코딩 테스트 다짜고짜 풀어보기' 카테고리의 다른 글
[python] 코딩 테스트 입문 문제 풀기 (9) (1) | 2024.10.09 |
---|---|
[python] 프로그래머스 다항식 더하기 (0) | 2024.10.08 |
[python] 코딩 테스트 입문 문제 풀기 (7) (1) | 2024.10.05 |
[python] 코딩 테스트 입문 문제 풀기 (6) (2) | 2024.09.30 |
[python] 코딩 테스트 입문 문제 풀기 (5) (0) | 2024.09.29 |