[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] 42586๋ฒˆ: ๊ธฐ๋Šฅ ๊ฐœ๋ฐœ (JAVA)

2022. 6. 20. 23:16ยท๊ฐœ๋ฐœ/Algorithm

๋ฌธ์ œ ๋งํฌ:

https://programmers.co.kr/learn/courses/30/lessons/42586

 

์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต - ๊ธฐ๋Šฅ๊ฐœ๋ฐœ

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ํŒ€์—์„œ๋Š” ๊ธฐ๋Šฅ ๊ฐœ์„  ์ž‘์—…์„ ์ˆ˜ํ–‰ ์ค‘์ž…๋‹ˆ๋‹ค. ๊ฐ ๊ธฐ๋Šฅ์€ ์ง„๋„๊ฐ€ 100%์ผ ๋•Œ ์„œ๋น„์Šค์— ๋ฐ˜์˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜, ๊ฐ ๊ธฐ๋Šฅ์˜ ๊ฐœ๋ฐœ์†๋„๋Š” ๋ชจ๋‘ ๋‹ค๋ฅด๊ธฐ ๋•Œ๋ฌธ์— ๋’ค์— ์žˆ๋Š” ๊ธฐ๋Šฅ์ด ์•ž์— ์žˆ๋Š”

programmers.co.kr

 

ํ’€์ด:

์ด ๋ฌธ์ œ์˜ ์š”์ ์€ ์•ž์— ์žˆ๋Š” ๊ธฐ๋Šฅ์ด ๋ฐฐํฌ๋˜์–ด์•ผ ๋‹ค์Œ ๊ธฐ๋Šฅ์ด ๋ฐฐํฌ๋  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค.Queue๋Š” ๋จผ์ € ๋„ฃ์€ ๋ฐ์ดํ„ฐ๊ฐ€ ๋จผ์ € ๋‚˜์˜ค๋Š” FIFO(First In First Out) ํŠน์ง•์„ ๊ฐ€์ง€๊ณ  ์žˆ์œผ๋ฏ€๋กœ ๋ฌธ์ œ ํ•ด๊ฒฐ์— ์ฐธ๊ณ ํ–ˆ๋‹ค.

	// ์ž‘์—… ์™„๋ฃŒํ•˜๋Š” ๋ฐ์— ๊ฑธ๋ฆฌ๋Š” ์‹œ๊ฐ„ ๊ณ„์‚ฐ: (100 - ์ž‘์—… ์ง„๋„) / ์ž‘์—… ์†๋„
	for (int i = 0; i < progresses.length; i++) {
		int time = (100 - progresses[i]) / speeds[i];

		// ๋‚˜๋จธ์ง€๊ฐ€ ์žˆ์œผ๋ฉด ์ผ์ˆ˜ + 1
		if ((100 - progresses[i]) % speeds[i] != 0) {
			time++;
		}
		worktime.add(time);
	}

๋จผ์ € (100 - ์ž‘์—… ์ง„๋„) / ์ž‘์—… ์†๋„๋ฅผ ๊ฑธ๋ฆฌ๋Š” ์ผ์ˆ˜๋กœ ์žก๊ณ  ๋‚˜๋จธ์ง€๊ฐ€ ์žˆ์„ ๊ฒฝ์šฐ์— ํ•˜๋ฃจ๋ฅผ ๋”ํ•˜๋Š” ๊ฒƒ์œผ๋กœ ์ž‘์—…์„ ์™„๋ฃŒํ•˜๋Š” ๋ฐ์— ๊ฑธ๋ฆฌ๋Š” ์ผ์ˆ˜๋ฅผ ์ €์žฅํ•˜๋Š” List์— ๋„ฃ์–ด ์ค€๋‹ค.

 

	public List<Integer> calcNextWork(Queue<Integer> worktime) {
		List<Integer> result = new ArrayList<Integer>();

		// prevWork: ๋น„๊ตํ•  ๋•Œ ๊ธฐ์ค€์ด ๋˜๋Š” ์ผ์ˆ˜
		int prevWork = worktime.poll();
		int cnt = 1;

		while (!worktime.isEmpty()) {
			int nextWork = worktime.peek();

			if (prevWork < nextWork) {
				result.add(cnt);
				cnt = 1;

				prevWork = worktime.poll();

			} else {
				worktime.poll();
				cnt++;
			}
		}
		result.add(cnt);

		return result;
	}

๊ฐ€์žฅ ์ฒ˜์Œ ์ผ์ˆ˜๋ฅผ prevWork๋กœ ์ €์žฅํ•˜๊ณ  ๋‹ค์Œ์— ์˜ค๋Š” ์ผ์ˆ˜์™€ ๋น„๊ตํ•˜์—ฌ ์ž‘์œผ๋ฉด ๊ฒฐ๊ณผ list์— ๋„ฃ์–ด ์ฃผ๊ณ 

์•„๋‹ˆ๋ฉด, ๊ทธ ๋‹ค์Œ์˜ ์ผ์ˆ˜๋ฅผ ๊บผ๋‚ด์„œ preWork๋ณด๋‹ค ์ž‘์€ ๊ฐ’์ด ๋‚˜์˜ฌ ๋•Œ๊นŒ์ง€ ๋น„๊ตํ•œ๋‹ค. 

 

์†Œ์Šค ์ฝ”๋“œ:

์ €์ž‘์žํ‘œ์‹œ ๋น„์˜๋ฆฌ ๋™์ผ์กฐ๊ฑด (์ƒˆ์ฐฝ์—ด๋ฆผ)

'๊ฐœ๋ฐœ > Algorithm' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] 17677๋ฒˆ: ๋‰ด์Šค ํด๋Ÿฌ์Šคํ„ฐ๋ง (JAVA)  (0) 2022.06.20
[๋ฐฑ์ค€/BOJ] 1406๋ฒˆ: ์—๋””ํ„ฐ (JAVA)  (0) 2022.06.08
[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] 92334๋ฒˆ: ์‹ ๊ณ  ๊ฒฐ๊ณผ ๋ฐ›๊ธฐ (JAVA)  (0) 2022.06.06
[๋ฐฑ์ค€/BOJ] 15953๋ฒˆ: ์ƒ๊ธˆ ํ—Œํ„ฐ (JAVA)  (0) 2022.06.05
'๊ฐœ๋ฐœ/Algorithm' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • [ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] 17677๋ฒˆ: ๋‰ด์Šค ํด๋Ÿฌ์Šคํ„ฐ๋ง (JAVA)
  • [๋ฐฑ์ค€/BOJ] 1406๋ฒˆ: ์—๋””ํ„ฐ (JAVA)
  • [ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] 92334๋ฒˆ: ์‹ ๊ณ  ๊ฒฐ๊ณผ ๋ฐ›๊ธฐ (JAVA)
  • [๋ฐฑ์ค€/BOJ] 15953๋ฒˆ: ์ƒ๊ธˆ ํ—Œํ„ฐ (JAVA)
Lily ๐Ÿ‘ฉ‍๐Ÿ’ป
Lily ๐Ÿ‘ฉ‍๐Ÿ’ป
  • Lily ๐Ÿ‘ฉ‍๐Ÿ’ป
    proLOGue
    Lily ๐Ÿ‘ฉ‍๐Ÿ’ป
  • ์ „์ฒด
    ์˜ค๋Š˜
    ์–ด์ œ
    • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (11)
      • ์ผ์ƒ (0)
        • .txt (0)
        • ํ•„์‚ฌ (0)
        • ์‹œ์‚ฌ (0)
        • ๋ฆฌ๋ทฐ (0)
        • ์—ฌํ–‰ (0)
      • ๊ฐœ๋ฐœ (11)
        • Algorithm (5)
        • IDE (2)
        • MSA (0)
        • Design Pattern (0)
        • Cloud Native (1)
        • Database (0)
        • Security (0)
        • Trouble Shooting ๐Ÿš€ (1)
        • Frontend (0)
        • Etc. (2)
  • ๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

    • ๋ฐฉ๋ช…๋ก
  • ๋งํฌ

  • ๊ณต์ง€์‚ฌํ•ญ

  • ์ธ๊ธฐ ๊ธ€

  • ํƒœ๊ทธ

    ๊ทธ๋ฆฌ๋“œ
    ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค
    websquare
    ArrayList
    AWS
    ํ•ต์‹ฌ๋งŒ ์ฝ•! ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค
    ๋™์ ํ• ๋‹น
    Kubernetes
    ๋„์ปค
    docker
    CLI
    ์›น์Šคํ€˜์–ด
    selecteddata
    ๋ฐ”์ธ๋”ฉ
    GitAction
    java
  • ์ตœ๊ทผ ๋Œ“๊ธ€

  • ์ตœ๊ทผ ๊ธ€

  • hELLOยท Designed By์ •์ƒ์šฐ.v4.10.3
Lily ๐Ÿ‘ฉ‍๐Ÿ’ป
[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] 42586๋ฒˆ: ๊ธฐ๋Šฅ ๊ฐœ๋ฐœ (JAVA)
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”