https://www.acmicpc.net/problem/21735
비트마스킹
0이면 2칸, 1이면 1칸 이동
Python 코드
1
2
3
4
5
6
7
8
9
10
11
|
n,m=map(int,input().split())
a=list(map(int,input().split()))
s=0
for i in range(1<<m):
x=1;b=0
for j in range(m):
if i&(1<<j):b+=1;x>>=1
if j+b>=n:break
x+=a[j+b]
s=max(s,x)
print(s)
|
cs |
c++ 코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
#include <algorithm>
#include <iostream>
#define endl '\n';
using namespace std;
int a[100];
int main(){
ios::sync_with_stdio(false);cin.tie(0);
int n, m;
cin >> n >> m;
for (int i=0;i<n;i++){
cin >> a[i];
}
int bit = 1 << m;
int bc, now;
int ans = 0;
for (int i=0;i<bit;i++){
now = 1;
bc = 0;
for (int j=0;j<m;j++){
if (i & (1 << j)){
bc += 1;
now >>= 1;
}
if (j + bc >= n) break;
now += a[j + bc];
}
ans = max(ans, now);
}
cout << ans << endl;;
return 0;
}
|
cs |
'백준 문제풀이' 카테고리의 다른 글
백준 14700 - 넴모넴모 (Hard) [C++] (0) | 2021.06.07 |
---|---|
백준 10909 - Quaternion inverse [Python] (0) | 2021.05.31 |
백준 17469 - 트리의 색깔과 쿼리 [Python] (0) | 2021.05.17 |
백준 14180 - 배열의 특징 [Python] (0) | 2021.05.09 |
백준 2315 - 가로등 끄기 [Python] (0) | 2021.05.06 |