권예진
코딩 공부
권예진
전체 방문자
오늘
어제
  • 분류 전체보기 (57)
    • Git과GitHub (3)
    • 개발상식 (0)
    • Back-End (20)
      • JAVA (3)
      • Spring (2)
      • CI&CD (0)
      • 부스트코스 (15)
    • PS (20)
      • 백준 (20)
    • TIL (0)
    • 회고 (3)
      • 우아한테크코스 (3)
    • 개발 도서 (8)
      • 객체지향의 사실과 오해 (8)
      • 좋은 코드, 나쁜 코드 (0)
    • 일상 (2)
      • 내가 보려고 만든 맥북 꿀팁 (2)
    • etc (1)
      • C (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 백준
  • 윤성우의열혈C프로그래밍
  • 우아한테크코스
  • 스프링부트
  • github
  • 우테코5기
  • 우테코
  • ps
  • 독서
  • 단계별로풀어보기
  • git
  • 프로젝트세팅
  • C언어
  • 맥북
  • Jacoco
  • 부스트코스
  • github-actions
  • 자바
  • 객체지향의사실과오해
  • 스프링
  • 우아한테크코스5기
  • 백엔드

최근 댓글

최근 글

hELLO · Designed By 정상우.
권예진

코딩 공부

[백준] 3003번: 킹, 퀸, 룩, 비숍, 나이트, 폰 [C]
PS/백준

[백준] 3003번: 킹, 퀸, 룩, 비숍, 나이트, 폰 [C]

2023. 1. 2. 02:25
반응형
 

3003번: 킹, 퀸, 룩, 비숍, 나이트, 폰

첫째 줄에 동혁이가 찾은 흰색 킹, 퀸, 룩, 비숍, 나이트, 폰의 개수가 주어진다. 이 값은 0보다 크거나 같고 10보다 작거나 같은 정수이다.

www.acmicpc.net

 

각각의 피스에 올바른 세트일 때의 피스 개수에서 현재 동혁이가 찾은 피스의 개수를 빼면

몇 개를 더하거나 빼야 올바른 세트가 되는지 구할 수 있다.

 

입력할 때, 킹, 퀸, 룩, 비숍, 나이트, 폰 순서대로 개수가 입력되므로,

이 순서대로 개수를 저장하는 배열을 만들어서 배열의 요소를 인덱스로 접근해서 값을 구하면 된다.

 

먼저, 올바른 세트일 때의 킹, 퀸, 룩, 비숍, 나이트, 폰 피스의 개수를 순서대로 저장하는 배열 set를 초기화한다.

여기서 배열의 크기는 6이 된다. (킹, 퀸, 룩, 비숍, 나이트, 폰 총 6가지 종류의 피스가 존재하므로)

set[0] = 킹 피스의 개수
set[1] = 퀸 피스의 개수
set[2] = 룩 피스의 개수
set[3] = 비숍 피스의 개수
set[4] = 나이트 피스의 개수
set[5] = 폰 피스의 개수

그 다음, 동혁이가 찾은 킹, 퀸, 룩, 비숍, 나이트, 폰 피스의 개수를 순서대로 저장할 배열 now를 선언한다.

여기서도 배열의 크기는 6이 된다.

 

반복문을 사용해서 킹, 퀸, 룩, 비숍, 나이트, 폰 피스의 개수를 순서대로 입력받아서

now 배열의 인덱스 0부터 5까지의 각 요소에 저장한다.

이때, 반복 횟수는 now 배열의 크기인 6이다.

 

마지막으로, 몇 개를 더하거나 빼야 올바른 세트가 되는지 계산해서 출력하면 된다.

계산할 때는 위에서 언급했듯이,

각각의 피스에 올바른 세트일 때의 피스 개수에서 현재 동혁이가 찾은 피스의 개수를 빼면 된다.

 

 

반복문을 사용해서 더하거나 빼야 할 킹, 퀸, 룩, 비숍, 나이트, 폰 피스의 개수를 순서대로 출력한다.

#include <stdio.h>
int main(void) {
    int set[6] = {1, 1, 2, 2, 2, 8};    // 올바른 피스 개수 (킹1, 퀸1, 룩2, 비숍2, 나이트2, 폰8)
    int now[6];                         // 동혁이가 찾은 피스의 개수
    
    for (int i = 0; i < 6; i++)         // 킹, 퀸, 룩, 비숍, 나이트, 폰 순서로
        scanf("%d", &now[i]);           // 동혁이가 찾은 피스의 개수를 입력받아서 now 배열에 저장
    
    for (int i = 0; i < 6; i++)            // 킹, 퀸, 룩, 비숍, 나이트, 폰 순서로
        printf("%d ", set[i] - now[i]);    // 몇 개를 더하거나 빼야 올바른 세트가 되는지 출력
                                           // (올바른 개수 - 찾은 개수)
    return 0;
}
반응형
저작자표시 (새창열림)

'PS > 백준' 카테고리의 다른 글

[백준] 2588번: 곱셈 [C]  (0) 2023.01.02
[백준] 10430번: 나머지 [C]  (0) 2023.01.02
[백준] 18108번: 1998년생인 내가 태국에서는 2541년생?! [C]  (0) 2022.12.30
[백준] 10926번: ??! [C / C++]  (0) 2022.12.30
[백준] 10869번: 사칙연산 [C]  (1) 2022.12.29
    'PS/백준' 카테고리의 다른 글
    • [백준] 2588번: 곱셈 [C]
    • [백준] 10430번: 나머지 [C]
    • [백준] 18108번: 1998년생인 내가 태국에서는 2541년생?! [C]
    • [백준] 10926번: ??! [C / C++]
    권예진
    권예진

    티스토리툴바