C++
#include <iostream>
#include <queue>
using namespace std;
void input (int* i) {
cin >> *i;
}
void print (int o) {
cout << o << '\n';
}
int main() {
int n;
queue<int> cards;
input(&n);
for (int i=0; i<n/2; i++) {
cards.push((i+1)*2);
}
if (n == 1) {
print(1);
} else {
if (n % 2 != 0) {
cards.push(cards.front());
cards.pop();
}
while(cards.size() > 1) {
cards.pop();
cards.push(cards.front());
cards.pop();
}
print(cards.front());
}
return 0;
}
Python
from collections import deque
cards = deque()
n = int(input())
for i in range(0, int(n/2)):
cards.append((i+1)*2)
if n == 1:
print(1)
else:
if n % 2 != 0:
cards.append(cards.popleft())
while len(cards) > 1:
cards.popleft()
cards.append(cards.popleft())
print(cards.pop())
C++
#include <iostream>
#include <string>
using namespace std;
void input (int* i) {
cin >> *i;
}
void print (int o) {
cout << o << '\n';
}
bool isConstructor(int n, int m) {
int sum = m;
string str = to_string(m);
for(int i=0; i<str.length(); i++) {
sum += str[i] - '0';
}
return n == sum;
}
int main() {
int n;
int con = 0;
input(&n);
int range = n>54 ? n-54 : 0;
for (int i=range; i<=n; i++) {
if (isConstructor(n, i)) {
con = i;
break;
}
}
print(con);
return 0;
}
Python
def isConstructor (n, m):
sum = m
m_str = str(m)
for i in range(0, len(m_str)):
sum = sum + int(m_str[i])
return n == sum
n = int(input())
con = 0
ran = n-54 if n>54 else 0
for i in range (n>54, n):
if isConstructor(n, i):
con = i
break
print(con)
2292) 벌집
C++
#include <iostream>
using namespace std;
void input (int* i) {
cin >> *i;
}
void print (int o) {
cout << o << '\n';
}
int main() {
int n;
int rooms = 1;
input(&n);
while(n > 1) {
n -= rooms * 6;
rooms++;
}
print(rooms);
return 0;
}
Python
n = int(input())
rooms = 1
while n > 1:
n -= rooms * 6
rooms = rooms + 1
print(rooms)
C++
#include <iostream>
using namespace std;
void input (int* i) {
cin >> *i;
}
void print (int o) {
cout << o << '\n';
}
int euclidean(int n, int m) {
int q = n;
int r = m;
while(r > 0) {
int temp = q;
q = r;
r = temp % r;
}
return q;
}
int gcd(int n, int m) {
return n < m ? euclidean(m, n) : euclidean(n, m);
}
int lcm(int n, int m) {
return (n * m) / gcd(n, m);
}
int main() {
int n, m;
input(&n);
input(&m);
print(gcd(n, m));
print(lcm(n, m));
return 0;
}
Python
def euclidean(n, m):
q = n
r = m
while r > 0:
temp = q
q = r
r = temp % r
return q
def gcd(n, m):
return euclidean(m, n) if n < m else euclidean(n, m)
def lcm(n, m):
return (int)(n * m / gcd(n, m))
n, m = list(map(int, input().split()))
print(gcd(n, m))
print(lcm(n, m))