max) max = count; } printf("%d\n", max); } "> max) max = count; } printf("%d\n", max); } "> max) max = count; } printf("%d\n", max); } ">
<aside> 1️⃣
문제: 1058번 친구
세계에서 가장 유명한 사람은 2-친구의 수가 가장 많은 사람
가장 유명한 사람의 2-친구 수를 출력
</aside>
#include <stdio.h>
int main() {
int N;
scanf("%d", &N);
char arr[50][51];
for (int i = 0; i < N; i++) {
scanf("%s", arr[i]);
}
int max = 0;
for (int i = 0; i < N; i++) {
int check[50] = {0}; //i의 2-친구 여부 체크
for (int j = 0; j < N; j++) {
if (arr[i][j] == 'Y') {
check[j] = 1; //접 친구
for (int k = 0; k < N; k++) {
if (arr[j][k] == 'Y') {
check[k] = 1; //구의 친구
}
}
}
}
check[i] = 0; //자기 자신은 제외
int count = 0;
for (int j = 0; j < N; j++) {
if (check[j]) count++;
}
if (count > max) max = count;
}
printf("%d\\n", max);
}

<aside> 2️⃣
문제: 1138번 한 줄로 서기
키가 1부터 N까지 모두 다른 사람들이 줄을 서는데 모두 자신보다 키가 큰 사람이 자신의 왼쪽에 몇 명 있는지만을 기억함
#include <stdio.h>
int main(){
//입력 받기
int N;
scanf("%d", &N);
int arr[11];
//서 있는 위치 넣을 배열
int place[11];
for(int i = 0; i < N; i++){
scanf("%d", &arr[i]);
place[i] = 0;
}
for (int i = 0; i < N; i++) { //키가 작은 사람부터 (1 ~ N)
int left = arr[i]; //자기보다 큰 사람 수
for (int j = 0; j < N; j++) {
if (place[j] == 0) { //빈자리
if (left == 0) { //건너뛸 필요가 없으면 여기 배치
place[j] = i + 1;
break;
}
left--; //아직 건너뛰어야 함
}
}
}
for(int i = 0; i < N; i++){
printf("%d ", place[i]);
}
}

#include <stdio.h>
int main() {
int N;
scanf("%d", &N);
char arr[50][51];
for (int i = 0; i < N; i++) {
scanf("%s", arr[i]);
}
int max = 0;
for (int i = 0; i < N; i++) {
int check[50] = {0}; //i의 2-친구 여부 체크
for (int j = 0; j < N; j++) {
if (arr[i][j] == 'Y') {
check[j] = 1; //접 친구
for (int k = 0; k < N; k++) {
if (arr[j][k] == 'Y') {
check[k] = 1; //구의 친구
}
}
}
}
check[i] = 0; //자기 자신은 제외
int count = 0;
for (int j = 0; j < N; j++) {
if (check[j]) count++;
}
if (count > max) max = count;
}
printf("%d\\n", max);
}