일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Notice
Recent Posts
Recent Comments
Link
Tags
- string과 stringbuilder
- 개미 군단 자바
- 자바 합성수 찾기
- 펙토리얼
- 프로그래머스 최반값 구하기 자바
- 외계행성의 나이 자바
- 배열 순환 자바
- 피자 나눠먹기(2) 자바
- 경우의 수 자바
- 프로그래머스 문자열 정렬하기(1)
- 배열 순환
- 자바 소인수분해
- string과 stringbuilder의 차이
- 소인수분해 구하는 공식
- 유클리드 호제법이란?
- 최빈값 구하기 자바
- 프로그래머스 공 던지기 게임
- 모스부호(1) 자바
- string과 stringbuilder의 차이점
- 프로그래머스
- stringbuilder란
- 자바 팩토리얼
- string과 stringbuilder 성능 최적화
- 프로그래머스 피자 나눠먹기(3)
- 숨어있는 숫자의 덧셈 (1) 자바
- 배열 순환 문제 공식
- 오블완
- 피자 나눠먹기(2)
- string과 stringbuilder 성능 차이
- 티스토리챌린지
Archives
- Today
- Total
여름 언덕에서 배운 것
공 던지기 ,원형 큐에서 다음 위치 찾기, 보드 게임(말판 이동)에서 N칸씩 이동 공통점 본문
공던지기 문제를 풀다가 지피티가 비슷한 유형의 문제를 풀 때 이 방식을 활용해보라고 조언 해줌
원형(순환) 구조를 다룰 때 많이 쓰이는 패턴
🟢 "현재 위치에서 일정한 간격으로 이동하는 순환 구조" 공식
👉 (현재 위치 + 이동할 칸 수) % 배열 길이
이 공식을 적용하면:
- 배열 끝을 넘어가면 자동으로 처음으로 돌아오고
- 배열 안에서 적절한 위치를 찾아줍니다.
🔹 이 공식을 쓰는 대표적인 문제들
- 공 던지기 (한 칸 건너뛰기)
index = (index + 2) % numbers.length;
- 원형 큐 (Circular Queue)에서 다음 위치 찾기
rear = (rear + 1) % queue.length;
- 보드 게임(말판 이동)에서 N칸씩 이동하는 경우
newPosition = (currentPosition + steps) % boardSize;
🔥 예제 1: 공 던지기 문제
class Solution {
public int solution(int[] numbers, int k) {
int index = 0;
for (int i = 1; i < k; i++) { // k번째가 될 때까지 반복
index = (index + 2) % numbers.length; // 2칸씩 이동
}
return numbers[index]; // k번째 공을 받은 사람의 번호 반환
}
}
🔥 예제 2: 보드 게임 (말판 이동)
int boardSize = 10; // 보드판의 칸 개수 (1~10)
int currentPosition = 7; // 현재 위치
int steps = 4; // 이동할 칸 수
int newPosition = (currentPosition + steps) % boardSize;
System.out.println(newPosition); // 1 (10을 넘어가면 다시 처음으로)
728x90
'가랑비에 옷 젖는 줄 모른다 💻 > 🌰코테문풀_꾸준히' 카테고리의 다른 글
[0단계/1점] 팩토리얼 (0) | 2025.03.13 |
---|---|
[0단계/1점]합성수 찾기 (0) | 2025.03.13 |
[0단계/6점] 구슬을 나누는 경우의 수 (1) | 2025.03.05 |
[0단계/1점]가위 바위 보 (0) | 2025.03.05 |
[0단계/1점]모스부호(1) (1) | 2025.03.05 |