-
프로그래머스 - x만큼 간격이 있는 n개의 숫자알고리즘 2022. 1. 19.반응형
내 풀이
자바
class Solution { public long[] solution(long x, int n) { long[] answer = new long[n]; long a = x; for(int i=0; i<n; i++) { answer[i] = x; x = x + a; } return answer; } }
파이썬
def solution(x, n): answer = [] a = x for i in range(0,n): answer.append(x) x = x + a return answer
다른 사람 풀이 공부
파이썬
def number_generator(x, n): return [i * x + x for i in range(n)] print(number_generator(2, 5))
한줄 for문 사용함.
i * x + x << 여기 까지는 각 요소에 어떤 계산을 넣은건지 수식
만약 그냥 i만 쓰게 되면 요소 그대로 출력한다는 뜻
뒤로 for i in range(n) 이 부분이 보통 for문 그대로의 형태
인덱스는 0부터 시작함
그걸 활용한 계산식
만약 일반 for문으로 한다면 아래의 형태가 된다.
def test2(a, b): answer = [] for i in range(b): answer.append(i * a + a) return answer print(test2(2,5))
한줄 for문을 활용하면 훨씬 간결하게 표현이 가능.
자바
import java.util.*; class Solution { public static long[] solution(int x, int n) { long[] answer = new long[n]; answer[0] = x; for (int i = 1; i < n; i++) { answer[i] = answer[i - 1] + x; } return answer; } }
위의 내 풀이랑 비슷한데 접근이 살짝 다르다
내 코드의 2줄을 1줄로 줄인 형태
어차피 2씩 증가면 전 인덱스에 2를 더하면 되는거니까 그걸 한줄에 한번에 표현한 계산법
반응형'알고리즘' 카테고리의 다른 글
프로그래머스 - 평균 구하기 (0) 2022.01.26 프로그래머스 - 하샤드 수 (0) 2022.01.25 프로그래머스 - 핸드폰 번호 가리기 (0) 2022.01.25 프로그래머스 - 행렬의 덧셈 (0) 2022.01.21 프로그래머스 - 직사각형 별 찍기 (0) 2022.01.18