728x90
▶문제 : 코딩테스트 연습 - 바탕화면 정리 | 프로그래머스 스쿨 (programmers.co.kr)
▶코드 작성
#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>
int *solution(const char *wallpaper[], size_t wallpaper_len) {
int *point = (int *)malloc(sizeof(int) * 4); //[lux, luy, rdx, rdy]
point[0] = 50; //각 값들이 가질 수 있는 최대, 최솟값
point[1] = 50;
point[2] = 0;
point[3] = 0;
for (int i = 0; i < wallpaper_len; i++) {
for (int j = 0; wallpaper[i][j] != '\0'; j++) { //wallpaper[i] 문자열 끝까지 반복
if (wallpaper[i][j] == '#') { //'#' 찾기
if (point[0] > i) point[0] = i; // lux
if (point[1] > j) point[1] = j; // luy
if (point[2] < i + 1) point[2] = i + 1; // rdx
if (point[3] < j + 1) point[3] = j + 1; // rdy
}
}
}
return point;
}
▶해석
격자에 존재하는 파일(#) 중 왼쪽, 오른쪽, 위쪽, 아래쪽 각각 가장 끝에 있는 위치를 point 배열에 입력한다.
이때 오른쪽과 아래쪽은 파일까지 포함해야 되니 각각 위치+1 해준다.
728x90
'프로그래머스 > C' 카테고리의 다른 글
프로그래머스 Level 1 : 공원 산책 C언어 (0) | 2023.04.30 |
---|---|
프로그래머스 Level 1 : 문자열 나누기 C언어 (0) | 2023.04.30 |
프로그래머스 Level 2 : 택배 배달과 수거하기 C언어 (0) | 2023.01.16 |
프로그래머스 Level 2 : 숫자 카드 나누기 C언어 (0) | 2022.12.19 |
프로그래머스 Level 1 : 가장 가까운 같은 글자 C언어 (0) | 2022.12.19 |
댓글