Algorithm/λ¬Έμ œν’€μ΄

[λ°±μ€€] 2508번 - 사탕 박사 고창영 (C++)

2023. 7. 28. 23:18

 

2508번: 사탕 박사 고창영

μ°½μ˜μ΄κ°€ λ“œλ””μ–΄ 취직을 ν–ˆλ‹€!! κ·Έκ°€ 30μ„ΈκΉŒμ§€ 취직을 μ•ˆν•˜λ˜ μ΄μœ λŠ” λ°”λ‘œ λ§ˆμŒμ— λ‹€λ‹ˆλŠ” 직μž₯을 μ°Ύμ§€ λͺ»ν•΄μ„œμ˜€λ‹€. μ΄λ²ˆμ— μ°½μ˜μ΄κ°€ μ·¨μ§ν•œ 곳은 사탕 곡μž₯이닀. 사탕 곡μž₯에 λ‹€λ‹ˆλ©΄ 사탕 처럼

www.acmicpc.net

문제

μ°½μ˜μ΄κ°€ λ“œλ””μ–΄ 취직을 ν–ˆλ‹€!! κ·Έκ°€ 30μ„ΈκΉŒμ§€ 취직을 μ•ˆν•˜λ˜ μ΄μœ λŠ” λ°”λ‘œ λ§ˆμŒμ— λ‹€λ‹ˆλŠ” 직μž₯을 μ°Ύμ§€ λͺ»ν•΄μ„œμ˜€λ‹€. μ΄λ²ˆμ— μ°½μ˜μ΄κ°€ μ·¨μ§ν•œ 곳은 사탕 곡μž₯이닀. 사탕 곡μž₯에 λ‹€λ‹ˆλ©΄ 사탕 처럼 λ‹¬μ½€ν•œ 직μž₯μƒν™œμ„ ν•  쀄 μ•Œμ•˜μ§€λ§Œ, 8μ‹œκ°„λ™μ•ˆ 사탕 ν’ˆμ§ˆμ„ 검사해야 ν•˜λŠ” μž‘μ—…μ€ λ„ˆλ¬΄λ‚˜ μ§€λ£¨ν–ˆλ‹€.

μ‚¬νƒ•μ˜ ν’ˆμ§ˆμ€ λ‹€μŒκ³Ό 같이 κ²€μ‚¬ν•œλ‹€. κ°€μž₯ λ¨Όμ € μ‚¬νƒ•μœΌλ‘œ 가득 μ°¬ λ°•μŠ€λ₯Ό μ—°λ‹€. κ·Έ λ‹€μŒ μ‚¬νƒ•μ˜ κ°œμˆ˜μ™€ 사탕이 μ—†λŠ” 곳의 개수λ₯Ό μ„Όλ‹€.

지루함을 견디지 λͺ»ν•œ μ°½μ˜μ΄λŠ” κ²°κ΅­ ν’ˆμ§ˆμ„ κ²€μ‚¬ν•˜λŠ” ν”„λ‘œκ·Έλž¨μ„ μž‘μ„±ν•˜κΈ°λ‘œ ν–ˆλ‹€.

rν–‰ cμ—΄ 행렬이 μ£Όμ–΄μ§„λ‹€. 이 행렬은 λ°•μŠ€λ₯Ό μœ„μ—μ„œ 바라본 것이닀. ν–‰λ ¬μ—λŠ” λ‹€μŒκ³Ό 같은 문자만 μžˆλ‹€.

  • ".": 빈 κ³³
  • "o": μ‚¬νƒ•μ˜ 먹을 수 μžˆλŠ” λΆ€λΆ„
  • "<>v^": μΊ”λ”” 껍질

사탕은 였직 2κ°€μ§€ λͺ¨μŠ΅λ§Œ μžˆλ‹€.

  1. >o<
  2. v
    o
    ^

μœ„μ™€ 같은 μ—°μ†λœ 3개의 문자만 사탕이닀.

사탕은 >o.와 같이 μ‚¬νƒ•μ˜ μΌλΆ€λ§Œ μ‘΄μž¬ν•  수 μžˆμ§€λ§Œ, 이 것은 μ‚¬νƒ•μœΌλ‘œ μ„Έμ§€ μ•ŠλŠ”λ‹€.

rν–‰ cμ—΄ 행렬이 μ£Όμ–΄μ‘Œμ„ λ•Œ, μ‚¬νƒ•μ˜ 개수λ₯Ό 좜λ ₯ν•˜λŠ” ν”„λ‘œκ·Έλž¨μ„ μž‘μ„±ν•˜μ‹œμ˜€.


μž…λ ₯

첫째 쀄에 ν…ŒμŠ€νŠΈ μΌ€μ΄μŠ€μ˜ 개수 tκ°€ μ£Όμ–΄μ§„λ‹€. 각 ν…ŒμŠ€νŠΈ μΌ€μ΄μŠ€λŠ” 빈 μ€„λ‘œ κ΅¬λΆ„λœλ‹€.

각 ν…ŒμŠ€νŠΈ μΌ€μ΄μŠ€μ˜ 첫째 μ€„μ—λŠ” rκ³Ό c κ°€ μ£Όμ–΄μ§„λ‹€. (1 ≀ r,c ≀ 400) κ·Έ λ‹€μŒ r개의 μ€„μ—λŠ” ν–‰λ ¬μ˜ 각 행이 μˆœμ„œλŒ€λ‘œ μ£Όμ–΄μ§„λ‹€. ν–‰λ ¬μ˜ 각 행은 c개의 문자이며, ".o<>v^"만 ν¬ν•¨ν•˜κ³  μžˆλ‹€. (각각의 μ•„μŠ€ν‚€ 값은 46, 111, 60, 62, 118, 94이닀)


좜λ ₯

각각의 ν…ŒμŠ€νŠΈ μΌ€μ΄μŠ€μ— λŒ€ν•΄ ν•œ 쀄에 ν•˜λ‚˜μ˜ μ •μˆ˜λ§Œ 좜λ ₯ν•œλ‹€. 이 값은 λ°•μŠ€μ— λ“€μ–΄μžˆλŠ” μ‚¬νƒ•μ˜ κ°œμˆ˜μ΄λ‹€.



풀이과정

배열을 일일이 확인을 ν•΄κ°€λ©΄μ„œ 사탕ꡬ성에 νƒ€λ‹Ήν•œ 쑰건인지 ν™•μΈν•˜λ©° μ§„ν–‰ν•˜λŠ” λ°©μ‹μœΌλ‘œ 진행을 ν•˜λ©΄ λœλ‹€.

code

#include <iostream>

int		main(void)
{
	int		t, r, c, count;
	char	candys[401][401];

	std::cin >> t;
	for (int i = 0; i < t; i++) 
	{
		std::cin >> r >> c;
		for (int j = 0; j < r; j++)
			for (int k = 0; k < c; k++)
				std::cin >> candys[j][k];

		count = 0;
		// 였λ₯Έμͺ½ μ•„λž˜.
		for (int j = 0; j < r; j++) {
			for (int k = 0; k < c; k++) {
				if (k + 2 < c && candys[j][k] == '>' && candys[j][k + 1] == 'o' && candys[j][k + 2] == '<')
					count++;
				if (j + 2 < r && candys[j][k] == 'v' && candys[j + 1][k] == 'o' && candys[j + 2][k] == '^')
					count++;
			}
		}
		std::cout << count << "\n";
	}

	return (0);
}


ν›„κΈ°

μ˜ˆμ œμ—λŠ” 1개만 μžˆλŠ” μ˜ˆμ‹œλ°–μ— μ—†μ–΄μ„œ λͺ°λžλŠ”λ° μΊ”λ””μ˜ 개수λ₯Ό 좜λ ₯ν•œ 이후에 newline을 λ„£μ–΄μ€˜μ•Όν–ˆμ—ˆλ‹€.
κ·Έκ±° λ•Œλ¬Έμ— 쓸데없이 ν‹€λ¦Όλ§Œ λŠ˜μ–΄λ‚¬λ‹€.

'Algorithm > λ¬Έμ œν’€μ΄' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€

[λ°±μ€€] 28113번 - μ •λ³΄μ„¬μ˜ λŒ€μ€‘κ΅ν†΅ (JS)  (0) 2023.07.31
[λ°±μ€€] 10815번 - 숫자 μΉ΄λ“œ (JS)  (0) 2023.07.30
[λ°±μ€€] 28235번 - μ½”λ“œλ§ˆμŠ€ν„° 2023 (JS)  (0) 2023.07.27
[λ°±μ€€] 2890번 - μΉ΄μ•½ (JS)  (0) 2023.07.26
[λ°±μ€€] 27959번 - μ΄ˆμ½”λ°” (JS)  (0) 2023.07.24
  1. 문제
  2. μž…λ ₯
  3. 좜λ ₯
  4. 풀이과정
  5. code
  6. ν›„κΈ°
moaoh
moaoh
λ‚˜μ˜ μ„±μž₯ 일기.
moaoh
🐢 🐾
moaoh
전체
였늘
μ–΄μ œ
  • Github
  • λΆ„λ₯˜ 전체보기
    • Algorithm
      • κ°œλ…μ •λ¦¬
      • λ¬Έμ œν’€μ΄
    • 42seoul
      • projects
    • CS
    • programming language
      • C++
      • Javascript
      • Go
      • Python
      • Front-end
      • Java
    • Java Spring
    • git
    • 일상
      • μ±… 읽기

졜근 κΈ€

hELLO Β· Designed By μ •μƒμš°
moaoh
[λ°±μ€€] 2508번 - 사탕 박사 고창영 (C++)
μƒλ‹¨μœΌλ‘œ

ν‹°μŠ€ν† λ¦¬νˆ΄λ°”

단좕킀

λ‚΄ λΈ”λ‘œκ·Έ

λ‚΄ λΈ”λ‘œκ·Έ - κ΄€λ¦¬μž ν™ˆ μ „ν™˜
Q
Q
μƒˆ κΈ€ μ“°κΈ°
W
W

λΈ”λ‘œκ·Έ κ²Œμ‹œκΈ€

κΈ€ μˆ˜μ • (κΆŒν•œ μžˆλŠ” 경우)
E
E
λŒ“κΈ€ μ˜μ—­μœΌλ‘œ 이동
C
C

λͺ¨λ“  μ˜μ—­

이 νŽ˜μ΄μ§€μ˜ URL 볡사
S
S
맨 μœ„λ‘œ 이동
T
T
ν‹°μŠ€ν† λ¦¬ ν™ˆ 이동
H
H
단좕킀 μ•ˆλ‚΄
Shift + /
⇧ + /

* λ‹¨μΆ•ν‚€λŠ” ν•œκΈ€/영문 λŒ€μ†Œλ¬Έμžλ‘œ 이용 κ°€λŠ₯ν•˜λ©°, ν‹°μŠ€ν† λ¦¬ κΈ°λ³Έ λ„λ©”μΈμ—μ„œλ§Œ λ™μž‘ν•©λ‹ˆλ‹€.