1 ๋ถ„ ์†Œ์š”

๐Ÿ“ [S3_1244] ์Šค์œ„์น˜ ์ผœ๊ณ  ๋„๊ธฐ

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

public class Main {
	public static void main(String[] args) throws IOException{
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

		int sw = Integer.parseInt(br.readLine());

		int[] arr = new int[sw];
		
		StringTokenizer st = new StringTokenizer(br.readLine(), " ");
		// ์Šค์œ„์น˜ ๋ฒˆํ˜ธ๊ฐ€ 1๋ถ€ํ„ฐ ์‹œ์ž‘ ( ํŽธ์˜๋ฅผ ์œ„ํ•ด 0๋ฒˆ์งธ๋Š” ๋น„์›Œ๋‘”๋‹ค )
		for (int i = 0; i < sw; i++) {
			arr[i] = Integer.parseInt(st.nextToken());
		}

		int stu_cnt = Integer.parseInt(br.readLine());

		for (int i = 0; i < stu_cnt; i++) {
			st = new StringTokenizer(br.readLine(), " ");
			int sex = Integer.parseInt(st.nextToken());
			int num = Integer.parseInt(st.nextToken());
			
			// ๋‚จ์ž
			if (sex == 1) {
				for (int z = 0; z < sw; z++) {
					if ((z+1) % (num) == 0) {
						arr[z] = (arr[z] == 0) ? 1 : 0;

					} else {
						continue;
					}
				}
			}

			// ์—ฌ์ž
			else if (sex == 2) {
				// ์ฒ˜์Œ์— ์ž๊ธฐ์ž์‹  ๋ฐ”๊ฟ”์ฃผ๊ธฐ
				arr[num-1] = (arr[num-1] == 0) ? 1 : 0;
				int left = num-1 - 1;
				int right = num-1 + 1;
				// ์™ผ,์˜ค ๊ฐ’์ด ๋‹ค๋ฅด๊ฑฐ๋‚˜, ์™ผ์ชฝ, ์˜ค๋ฅธ์ชฝ์ด ๋ฒ”์œ„๋ฅผ ๋ฒ—์–ด๋‚  ๋•Œ ๋๋‚ด๊ธฐ
				while (true) {
					if (left < 0 || right > sw-1 || arr[left] != arr[right] ) {
						break;
					} else {
						arr[left] = (arr[left] == 0) ? 1 : 0;
						arr[right] = (arr[right] == 0) ? 1 : 0;
						left--;
						right++;
					}
				}
			}
		}
		for (int a = 0; a < sw; a++) {
			System.out.print(arr[a] + " ");
			if((a+1) % 20 == 0) {
				System.out.println();
			}
		}

	}
}     

๐Ÿค” ๋‚˜์˜ ์ƒ๊ฐ

์ผ๋‹จ ์‚ผํ•ญ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ˆซ์ž ๋ฐ”๊ฟ”์ฃผ๊ธฐ๋ฅผ ํ•˜์˜€๋‹ค.
๊ทธ๋ฆฌ๊ณ  ๋‚จ์ž๋Š” ๊ฐ„๋‹จํ•˜๊ฒŒ ๋ฐฐ์ˆ˜ ์ฐพ๊ธฐ๋กœ ํ•˜์˜€๊ณ 
์—ฌ์ž๋Š” ๋ฒ”์œ„๋ฅผ ๋ฒ—์–ด๋‚˜๋Š” ๊ฒฝ์šฐ ๋ง๊ณ  ๋ฌดํ•œ๋ฃจํ”„๋ฌธ์„ ํ†ตํ•ด ์™ผ์ชฝ, ์˜ค๋ฅธ์ชฝ์„ ๋น„๊ตํ•ด ์ฃผ์—ˆ๋‹ค.
์ฒ˜์Œ์— ๋ฐฐ์—ด์„ 1 index๋ถ€ํ„ฐ ์ฃผ์–ด์„œ ํ’€์—ˆ๋Š”๋ฐ ๊ณ„์†ํ•ด์„œ ๋Ÿฐํƒ€์ž„์—๋Ÿฌ(ArrayIndexOutOfBounds)๊ฐ€ ๋–ด๋‹ค.
๊ทธ๋ž˜์„œ 0 index ๋ถ€ํ„ฐ ์ฃผ๋‹ˆ๊นŒ ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์—ˆ๋‹ค.
์ด ๋ฌธ์ œ์—์„œ๋Š” ์ˆ˜๋ฅผ ๋ฐ”๊พธ๋Š” ๊ฒƒ๋„ ๋ฐ”๊พธ๋Š” ๊ฑฐ์ง€๋งŒ ์Šค์œ„์น˜ ์ˆœ์„œ๊ฐ€ 1๋ถ€ํ„ฐ๋ผ์„œ ๋ฐฐ์—ด๊ณผ ๋งค์น˜ํ•˜๋Š”๊ฒŒ ๊ฐ€์žฅ ํ—ท๊ฐˆ๋ ธ๋˜ ๊ฒƒ ๊ฐ™๋‹ค.

ํƒœ๊ทธ: , , ,

์นดํ…Œ๊ณ ๋ฆฌ:

์—…๋ฐ์ดํŠธ: