문제
description
Given n>=0, create an array length n*n with the following pattern, shown here for n=3 : {0, 0, 1, 0, 2, 1, 3, 2, 1} (spaces added to show the 3 groups). squareUp(3) → [0, 0, 1, 0, 2, 1, 3, 2, 1] squareUp(2) → [0, 1, 2, 1] squareUp(4) → [0, 0, 0, 1, 0, 0, 2, 1, 0, 3, 2, 1, 4, 3, 2, 1] |
1) 1차원 배열로 n*n 사각형 만들기
2) 뒤에서부터 1씩 증가하는 사각형
풀이
1) 피봇처럼 back, front를 정함
2) back은 큰 반복문이 끝날 때마다 n씩 증가
3) j는 back과 같은 위치에서부터 1을 채워나가며, 앞 인덱스로 돌아가며 front 피봇을 만날 때까지 값을 채움
4) 사각형을 구성할 값인 square(위의 예시에서는 3, 2, 1)을 1로 초기화한 뒤, j가 가리키는 위치에 값을 넣음
5) 정답 배열인 answer 리턴
추가 스터디 정리
<forEach>
/*기본 문법*/
for (변수 : 반복 가능한 객체) {
// 실행문
}
for each문 : 배열과 같이 여러 가지 값들이 들어 있는 객체에 대해 순차적으로 실행할 수 있다.
/*예시*/
public static void main(String[] args) {
int[] array = {1, 2, 3, 4};
for (int e : array) {
System.out.println(e); // 1, 2, 3, 4
}
}
기존의 for 문을 사용하여 인덱스를 사용해 배열에서 값을 꺼내오는 것과 달리, 간단하게 접근 가능하다는 장점이 있다.
<forEach vs for>
참고 : https://jinyoungchoi95.tistory.com/15
참고 : https://siyoon210.tistory.com/99
'Algorithm' 카테고리의 다른 글
[프로그래머스] 평행 (0) | 2023.04.28 |
---|---|
[프로그래머스] 옹알이(0) (0) | 2023.04.28 |
Codingbat - Java] Logic2 - blackjack (0) | 2021.10.07 |
Codingbat-Java] Warmup2 - arrayCount9 (0) | 2021.09.30 |
Codingbat-Java] Warmup1 - parrotTrouble (0) | 2021.09.24 |