반응형
백준 3004번 체스판 조각 풀이 코드
C | C++ | Java | Python
풀이
최대 조각을 얻기 위해선 계속해서 가로세로 방향을 바꿔가며 잘라야 합니다. 이를 적용하면 아래 규칙을 발견할 수 있습니다.
자르지 않은 통판에서 바로 다음에 얻을 수 있는 조각을 a로 두었을 때 a는 1로 시작합니다(= 첫 번째 한 번 자르면 하나를 추가로 얻습니다). a는 점점 누적되어 커지며, 홀수번째에는 a만큼, 짝수번째에는 a+1만큼 조각을 더 얻을 수 있습니다(이때 a += 1). 코드 자체는 반복문을 홀수인 1부터가 아니라 0부터 시작하게 짰으므로 조건이 반대가 되겠죠.
코드
#include <stdio.h>
int main(){
int cut, piece = 1, a = 1, i;
scanf("%d", &cut);
for(i = 0; i < cut; i++){
if(i%2 != 0){
a += 1;
}
piece += a;
}
printf("%d", piece);
return 0;
}
#include <iostream>
using namespace std;
int main(){
int cut, piece = 1, a = 1;
cin>>cut;
for(int i = 0; i < cut; i++){
if(i%2 != 0){
a += 1;
}
piece += a;
}
cout<<piece;
return 0;
}
import java.util.Scanner;
public class Main{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
int cut = sc.nextInt();
int piece = 1, a = 1;
for(int i = 0; i < cut; i++){
if(i%2 != 0){
a += 1;
}
piece += a;
}
System.out.println(piece);
}
}
cut = int(input())
piece = 1
a = 1
for i in range(cut):
if i%2 != 0:
a += 1
piece += a
print(piece)
문제 출처
반응형
'Coding > BAEKJOON' 카테고리의 다른 글
[백준] 16486번 운동장 한 바퀴 풀이 코드 (C/C++/Java 자바/Python 파이썬) (0) | 2021.12.17 |
---|---|
[백준] 17388번 와글와글 숭고한 풀이 코드 (C/C++/Java 자바/Python 파이썬) (0) | 2021.12.15 |
[백준] 17362번 수학은 체육과목 입니다 2 풀이 코드 (C/C++/Java 자바/Python 파이썬) (0) | 2021.12.09 |
[백준] 11948번 과목선택 풀이 코드 (C/C++/Java 자바/Python 파이썬) (0) | 2021.12.07 |
[백준] 5575번 타임 카드 풀이 코드 (C/C++/Java 자바/Python 파이썬) (0) | 2021.12.05 |