-
[BOJ - JAVA] 1592 - 영식이와 친구들(시뮬레이션, 초간단) 본문
728x90
반응형
# 주소
https://www.acmicpc.net/problem/1592
# 문제
# 문제 해설 및 코드 리뷰
import java.util.*;
public class Main{
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int n = scan.nextInt();
int m = scan.nextInt();
int l = scan.nextInt();
int[] arr = new int[n];
int answer = 0;
int temp = 0;
while(true) {
if(arr[temp] % 2 == 1) {
temp = (temp + l) % n;
arr[temp]++;
answer++;
}
else if(arr[temp] % 2 == 0) {
temp = ((temp - l) + n) % n;
arr[temp]++;
answer++;
}
if(arr[temp] == m)
break;
}
System.out.print(answer - 1);
}
}
이 문제를 풀면서 좀 어이없었던 것이 하나 있습니다.
문제 잘 보시면 짝수개일 때에는 반시계방향으로 움직인다 되어있는데 전 그거 신경안쓰고 시계방향으로 움직이게 코딩했는데 정답이 맞더라고요.
근데 다시 보니까 반시계네요.
왜맞는걸까요? ㅋㅋㅋ
문제 자체는 간단했습니다.
while문으로 계속 돌리면서 arr의 값이 m이 되면 break를 걸어주시면 끝입니다.
시계 방향일 때에는 temp인덱스에 l을 더하고 n을 나눠준 나머지.
반시계 방향일 대에는 temp인덱스에 l을 빼고 n을 더하고 n을 나누어주셔야합니다.(마이너스가 될 수 있어서)
감사합니다.
728x90
반응형
'백준 문제 풀이' 카테고리의 다른 글
[BOJ - JAVA] 2251 - 물통 (BFS) (0) | 2022.06.20 |
---|---|
[BOJ - JAVA] 1952 - 달팽이 2 (시뮬레이션, DFS, 구현) (0) | 2022.06.19 |
[BOJ - JAVA] 19236 - 청소년 상어(시뮬레이션, DFS, 삼성 코테 기출) (0) | 2022.06.13 |
[BOJ - JAVA] 14719 - 빗물(시뮬레이션, 구현) (0) | 2022.06.10 |
[BOJ - JAVA] 2636 - 치즈 (시뮬레이션, BFS) (0) | 2022.06.10 |
Comments