프로그래머스 > 코딩테스트 연습 > 코딩 기초 트레이닝 > 배열의 원소만큼 추가하기
https://school.programmers.co.kr/learn/courses/30/lessons/181861
📒 문제
아무 원소도 들어있지 않은 빈 배열 X가 있습니다. 양의 정수 배열 arr가 매개변수로 주어질 때, arr의 앞에서부터 차례대로 원소를 보면서 원소가 a라면 X의 맨 뒤에 a를 a번 추가하는 일을 반복한 뒤의 배열 X를 return 하는 solution 함수를 작성해 주세요.
제한사항
- 1 ≤ arr의 길이 ≤ 100
- 1 ≤ arr의 원소 ≤ 100
입출력 예
arr | result |
[5, 1, 4] | [5, 5, 5, 5, 5, 1, 4, 4, 4, 4] |
[6, 6] | [6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6] |
[1] | [1] |
입출력 예 설명
입출력 예 #1
- 예제 1번에 대해서 a와 X를 나타내보면 다음 표와 같습니다.
a X [] 5 [5, 5, 5, 5, 5] 1 [5, 5, 5, 5, 5, 1] 4 [5, 5, 5, 5, 5, 1, 4, 4, 4, 4]
입출력 예 #2
- 예제 2번에 대해서 a와 X를 나타내보면 다음 표와 같습니다.
a X [] 6 [6, 6, 6, 6, 6, 6] 6 [6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6]
입출력 예 #3
- 예제 3번에 대해서 a와 X를 나타내보면 다음 표와 같습니다.
a X [] 1 [1]
💻 소스코드
using System;
using System.Collections.Generic;
public class Solution {
public int[] solution(int[] arr) {
List<int> answer = new List<int>();
for(int i = 0 ; i < arr.Length; i++)
{
for(int j = 0 ; j < arr[i]; j++)
{
answer.Add(arr[i]);
}
}
return answer.ToArray();
}
}
다른 풀이
using System;
using System.Collections.Generic;
public class Solution {
public int[] solution(int[] arr) {
List<int> answer = new List<int>();
foreach(int n in arr)
answer.AddRange(Enumerable.Repeat(n, n));
return answer.ToArray();
}
}
※ 참고 사이트
AddRange : https://m.blog.naver.com/gamejung13/220793725461
Repeat : https://ibocon.tistory.com/105
📝 풀이
첫번째 풀이는 이중 for문을 이용해 arr의 크기만큼 반복문을 돌면서 각 arr의 요소 크기만큼 돌면서 answer에 값을 추가해주었다. 이중 for문을 도는 것이 맘에 들지 않아 다른 방법을 찾아보았다.
그래서 두번째 풀이는
foreach로 각 arr의 요소를 Repeat메서드를 통해 각 숫자 만큼의 배열을 만들어 AddRange로 한번에 추가하였다.
이 방법으로 for문을 한번만 돌면서 index까지 신경쓰지 않아도 되서 좀 더 간편하게 만들어 줄 수 있었다.
관련 포스팅
[C# 문법] Enumerable 클래스
최근 수정: 2024.08.01Enumerable 클래스 내용 중 새로 알게되거나 사용했던 메서드들 기록하는 곳입니다. Enumerable 클래스Enumerable 클래스는 LINQ의 일부로 IEnumerable 인터페이스를 구현하는 컬렉션 클래
twd0622.tistory.com
[C# 문법] List 메서드 모음
최근 수정: 2024.08.01List 메서드 내용 중 새로 알게되거나 사용했던 메서드들 기록하는 곳입니다. 주요 메서드Count : 리스트의 길이를 반환한다.List lst = new List();lst.Add(1);lst.Add(2);lst.Add(3);Console.Write
twd0622.tistory.com
'코딩 테스트 (C#) > 프로그래머스 (기초)' 카테고리의 다른 글
[C#][프로그래머스 > 코딩테스트 기초] 문자열 묶기 (0) | 2024.08.02 |
---|---|
[C#][프로그래머스 > 코딩테스트 기초] 배열 만들기 6 (0) | 2024.08.01 |
[C#][프로그래머스 > 코딩테스트 기초] 공백으로 구분하기 2 (0) | 2024.07.31 |
[C#][프로그래머스 > 코딩테스트 기초] 조건에 맞게 수열 변환하기 1 (0) | 2024.07.30 |
[C#][프로그래머스 > 코딩테스트 기초] 길이에 따른 연산 (0) | 2024.07.30 |