문제 링크
https://www.acmicpc.net/problem/32284
문제
널 향한 설레임을 오늘부터 우리는
꿈꾸며 기도하는 오늘부터 우리는
저 바람에 노을 빛 내 맘을 실어 보낼게
그리운 마음이 모여서 내리는
바람이 부는 들판에서, 나의 마음을 너에게 실어 보내려고 한다.
들판은 N × M 크기의 격자로 나타낼 수 있다. 들판의 각 칸은 (x, y) (0 ≤ x < N, 0 ≤ y < M)와 같이 좌표로 나타낼 수 있으며, 위에서 x + 1번째, 왼쪽에서 y + 1번째에 위치한 칸이라는 것을 나타낸다. 들판의 각 칸에는 동서남북 중 한 방향의 바람이 분다. 또한 들판에는 너가 (a, b) 칸에 서 있고, 나의 마음이 격자 어딘가에 정확히 1개 있다.
들판의 칸 (i, j)에 나의 마음이 있으면, 나의 마음은 다음과 같이 이동한다.
- (i, j)에 동쪽으로 바람이 불면, (i, j + 1)로 이동한다.
- (i, j)에 서쪽으로 바람이 불면, (i, j − 1)로 이동한다.
- (i, j)에 남쪽으로 바람이 불면, (i + 1, j)로 이동한다.
- (i, j)에 북쪽으로 바람이 불면, (i − 1, j)로 이동한다.
나의 마음이 너가 있는 칸에 닿게 되면 마음이 전해지고, 격자의 경계를 벗어나면 사라진다. 둘 다 아니라면 마음은 계속 이동한다.
나의 마음이 너가 있는 칸에서 시작할 수도 있고, 이럴 경우 바로 마음이 전해짐에 유의하자.
나의 마음의 위치에 상관없이 나의 마음은 항상 너에게 전해질 수 있다고 한다. 이러한 바람의 배치를 구해보자.
입력
첫째 줄에 N,M이 주어진다.
둘째 줄에 a,b가 주어진다. (0 ≤ a < N, 0 ≤ b < M)
출력
N개 줄에 걸쳐 각 줄에 바람의 배치를 나타내는 M개의 문자를 출력한다.
칸 (i, j)에 바람이 동쪽으로 불면, i + 1번째 줄의 j + 1번째 글자로 E를 출력한다. 바람이 서쪽, 남쪽, 북쪽으로 불면 같은 방식으로 W, S, N을 출력한다.
가능한 바람의 배치가 여러 개이면, 아무거나 출력해도 된다.
모든 가능한 입력에 대해서 가능한 바람의 배치가 있음을 증명할 수 있다.
제한
- 1 ≤ N, M ≤ 50
예제 입력 1
3 3
1 1
예제 출력 1
SSS
EEW
NNN
알고리즘 분류
- 애드 혹
노트
풀이
널 향한 설레임을 오늘부터 우리는
꿈꾸며 기도하는 오늘부터 우리는 저 바람에
노을빛 내 맘을 실어보낼게
그리운 마음이 모여서 내리는
Me gustas tu gustas tu
su tu tu ru 좋아해요
gustas tu su tu ru ru
한 발짝 뒤에 섰던 우리는
언제쯤 센치해질까요
서로 부끄러워서 아무 말도 못하는
너에게로 다가가고 싶은데
바람에 나풀거리는 꽃잎처럼
미래는 알 수가 없잖아
이제는 용기내서 고백할게요
하나보단 둘이서 서로를 느껴봐요
내 마음 모아서 너에게 전하고 싶어
설레임을 오늘부터 우리는
꿈꾸며 기도하는 오늘부터 우리는 저 바람에
노을빛 내 맘을 실어보낼게
그리운 마음이 모여서 내리는
Me gustas tu gustas tu
su tu tu ru 좋아해요
gustas tu su tu ru ru
한걸음 앞에 서서 두 손을
놓지 말기로 약속해요
소중해질 기억을 꼭꼭 담아둘게요
지금보다 더 아껴주세요
달빛에 아른거리는 구름처럼
아쉬운 시간만 가는데
이제는 용기내서 고백할게요
둘보단 하나되어 서로를 느껴봐요
내 마음 모아서 너에게 전하고 싶어
설레임을 오늘부터 우리는
꿈꾸며 기도하는 오늘부터 우리는 저 바람에
노을빛 내 맘을 실어보낼게
그리운 마음이 모여서 내리는
감싸줄게요
그대 언제까지나 언제까지나
사랑이란 말 안 해도 느낄 수 있어요
고마운 마음을 모아서
No no no no
널 향한 설레임을 오늘부터 우리는 (오늘부터 우리는)
꿈꾸며 기도하는 오늘부터 우리는 저 바람에 (오늘부터 우리는 Hoo)
노을빛 내 맘을 실어보낼게
그리운 마음이 모여서 내리는
Me gustas tu gustas tu
su tu tu ru 좋아해요
gustas tu su tu ru ru
코드
#include <iostream>
#include <vector>
#include <string>
#include <algorithm>
#define MAX 51
#define FASTIO cin.tie(0); cout.tie(0); ios::sync_with_stdio(false);
using namespace std;
int N, M, A, B;
char Answer[MAX][MAX];
void input() {
cin >> N >> M;
cin >> A >> B;
}
void settings() {
for (int i = 0; i < N; i++) {
for (int j = 0; j < M; j++) {
if (i == A) {
if (j <= B) {
Answer[i][j] = 'E';
}
else {
Answer[i][j] = 'W';
}
}
else if (i < A) {
Answer[i][j] = 'S';
}
else {
Answer[i][j] = 'N';
}
}
}
}
void printAnswer() {
for (int i = 0; i < N; i++) {
for (int j = 0; j < M; j++) {
cout << Answer[i][j];
}
cout << "\n";
}
}
int main() {
FASTIO
input();
settings();
printAnswer();
return 0;
}
'BOJ > Silver' 카테고리의 다른 글
[BOJ/Silver 5] 백준 33557 곱셈을 누가 이렇게 해 ㅋㅋ(C++) (0) | 2025.03.08 |
---|---|
[BOJ/Silver 5] 백준 24039 2021은 무엇이 특별할까?(C++) (2) | 2025.02.02 |
[BOJ/Silver 1] 백준 1342 행운의 문자열(C++) (2) | 2025.01.31 |
[BOJ/Silver 1] 백준 33254 Hurry the Hedgehog(C++) (2) | 2025.01.29 |
[BOJ/Silver 4] 백준 1835 카드(C++) (1) | 2025.01.07 |