현재 캐릭터 점수 = N
자릿수를 기준으로 점수 N을 반으로 나눠, 왼쪽부분 합 + 오른쪽 부분 합이 동일한 상황에만 기술 사용 가능
ex)
n = 126402
왼쪽 = 1+2+3 오른쪽 = 4+0+2
두 합은 각각 = 6 ~> 럭키스트레이트!
현재 점수 n이 주어졌을 때, 럭키스트레이트를 쓸 수 있는지 없는지 알려줘라
~> 매우쉬운둣
슬라이싱 두 번해서
if sum() == sum():
return True
def solution(n):
pivot = len(n)//2
left = list(map(int, n[:pivot]))
right = list(map(int, n[pivot:]))
if sum(left) == sum(right):
return True
else:
return False
n = input()
print("LUCKY" if solution(n) else "READY")
#include <bits/stdc++.h>
using namespace std;
void main(void) {
string arr;
cin >> arr;
vector <int> left;
vector <int> right;
int len = arr.size();
int pivot = len / 2;
for (int i = 0; i < pivot; i++) {
left.push_back(arr[i] - '0');
right.push_back(arr[(len-1)-i] - '0');
}
int left_sum = 0, right_sum = 0;
for (int i = 0; i < left.size(); i++) {
left_sum += left[i];
right_sum += right[i];
}
if (left_sum == right_sum)
cout << "LUCKY" << endl;
else
cout << "READY" << endl;
}
python
cpp
#include <bits/stdc++.h>
using namespace std;
string str;
int summary = 0;
int main(void) {
cin >> str;
// 왼쪽 부분의 자릿수의 합 더하기
for (int i = 0; i < str.size() / 2; i++) {
summary += str[i] - '0';
}
// 오른쪽 부분의 자릿수의 합 빼기
for (int i = str.size() / 2; i < str.size(); i++) {
summary -= str[i] - '0';
}
// 왼쪽 부분과 오른쪽 부분의 자릿수 합이 동일한지 검사
if (summary == 0) cout << "LUCKY" << '\n';
else cout << "READY" << '\n';
}
알파벳 대문자, 숫자(0~9)로 구성된 문자열 주어짐
모든 알파벳을 오름차순으로 출력하고
그 뒤에 숫자를 모두 더해서 출력
생각할것도 없다
하나씩 읽어와서 isdigit()함수로 숫자문자 구분
문자끼리 정렬한 결과 뒤에 숫자 붙여서 print
s = input()
num = 0
alpha = []
for i in s:
if i.isdigit():
num += int(i)
else:
alpha.append(i)
alpha.sort()
# (중요) 숫자가 있는 경우에만 붙여줄 수 있도록 해야함 -->이거땜에 틀림
if num != 0:
alpha.append(str(num))
print("".join(alpha))
#include <bits/stdc++.h>
using namespace std;
void main(void) {
string s;
cin >> s;
int num = 0;
vector <char> alpha;
for (int i = 0; i < s.size(); i++) {
if (isdigit(s[i]))
num += (s[i] - '0');
else
alpha.push_back(s[i]);
}
sort(alpha.begin(), alpha.end());
for (int i = 0; i < alpha.size(); i++) {
cout << alpha[i];
}
if (num != 0)
cout << num;
}