코딩 기록들

[프로그래머스 코딩테스트 입문]-[점의 위치 구하기, 2차원으로 만들기] 본문

프로그래머스 문제기록

[프로그래머스 코딩테스트 입문]-[점의 위치 구하기, 2차원으로 만들기]

코딩펭귄 2023. 9. 16. 03:08

점의 위치 구하기

 문제설명 

x 좌표 (x, y)를 차례대로 담은 정수 배열 dot이 매개변수로 주어짐

좌표 dot이 사분면 중 어디에 속하는지 1, 2, 3, 4 중 하나를 return
제한사항
dot의 길이 = 2
dot[0]은 x좌표를, dot[1]은 y좌표를 나타냄
-500 ≤ dot의 원소 ≤ 500
dot의 원소는 0이 아닙니다.
입출력 예
  dot   result
 [2, 4]    1    -> dot이 [2, 4]로 x 좌표와 y 좌표 모두 양수이므로 제 1 사분면에 속함. 1 treturn
[-7, 9]    2
코드

def solution(dot):
    answer = 0
    if dot[0] > 0 and dot[1] > 0:
        answer = 1
    elif dot[0] < 0 and dot[1] > 0:
        answer = 2
    elif dot[0] < 0 and dot[1] < 0:
        answer = 3
    else :
        answer = 4
    return answer

 

2차원으로 만들기

 문제설명 

- 정수 배열 num_list와 정수 n이 매개변수로 주어짐

- num_list를 다음 설명과 같이 2차원 배열로 바꿔 return
- num_list가 [1, 2, 3, 4, 5, 6, 7, 8] 로 길이가 8이고 n이 2이므로 num_list를 2 * 4 배열로 다음과 같이 변경합니다. 2차원으로 바꿀 때에는 num_list의 원소들을 앞에서부터 n개씩 나눠 2차원 배열로 변경합니다.
num_list n result
[1, 2, 3, 4, 5, 6, 7, 8] 2 [[1, 2], [3, 4], [5, 6], [7, 8]]

제한사항
num_list의 길이는 n의 배 수개
0 ≤ num_list의 길이 ≤ 150
2 ≤ n < num_list의 길이
입출력 예

num_list n result
[1, 2, 3, 4, 5, 6, 7, 8]  2 [[1, 2], [3, 4], [5, 6], [7, 8]]

 

풀이1
def solution(num_list, n):
    answer = []
    cnt = 0
    a = []
    for i in num_list:
        a.append(i)
        cnt += 1
        if cnt == n:
            answer.append(a)
            cnt = 0
            a = []
    return answer
풀이2
def solution(num_list, n):
    answer = []
    for i in range(0, len(num_list), n): # index 0부터, index n-1 까지, n단위로
        answer.append(num_list[i:i+n])     
    return answer

# range(start, stop, step)

# List[Start:End:Step]

- start : 자르기 시작할 index위치

- end : 자르기 끝낼 index위치

- step(option) : 특정단위로 잘라서 가지고오기 위함