2021 POSTECH Programming Open Contest 풀이
A   [BOJ 23813] 회전
B   [BOJ 23814] 아 저는 볶음밥이요
C   [BOJ 23815] 똥게임
D   [BOJ 23816] 옷걸이걸이걸이
E   [BOJ 23817] 포항항
F   [BOJ 23818] 원수의 원수
G   [BOJ 23819] 묻고 더블로 마셔
H   [BOJ 23820] MEX

1. 문제Permalink

23813. 회전 (2021 POSTECH Programming Open Contest A번)

백준 23813번 - 회전 (https://www.acmicpc.net/problem/23813)

2. 풀이Permalink

만약 어떤 수가 abcd 라면, abcd+bcda+cdab+dabc가 답이다. (a+b+c+d)×1000 +(b+c+d+a)×100 +(c+d+a+b)×10 +(d+a+b+c)×1 =(a+b+c+d)×(1000+100+10+1)

이를 일반화시키면 정수 Nx자리일 때, (정수 N의 각 자리수의 합) × (1x개인 111)이 된다.

3. 채점 결과Permalink

boj-23813

4. 회고Permalink

.

5. 코드Permalink

#include <bits/stdc++.h>
using namespace std;
#define FASTIO cin.tie(0); cout.tie(0); ios_base::sync_with_stdio(0);
#define FOR(i,a,b) for(int i=(a);i<=(b);i++)
#define ROF(i,a,b) for(int i=(a);i>=(b);i--)
#define ll long long int
#define pii pair<int, int>
#define PQ priority_queue
#define LEN(v) int(v.size())
#define ALL(v) v.begin(),v.end()
#define INF 2e9
#define LINF 1e18
int main() {
FASTIO;
ll N;
cin >> N;
string s = to_string(N);
ll sum = 0;
FOR(i, 0, LEN(s) - 1) {
sum += (s[i] - '0');
}
ll tmp = 1;
FOR(i, 1, LEN(s) - 1) {
tmp = tmp * 10 + 1;
}
cout << sum * tmp;
return 0;
}

댓글남기기