티스토리 뷰
728x90
https://www.acmicpc.net/problem/18406
구현, 문자열
머선 문제냐 하면
123402 라는 문자열이 주어지면, 반갈죽!해서 양쪽 자릿수 합이 같은지 확인하는 문제임
같으면 LUCKY 출력, 다르면 READY 출력
*문자열은 늘 짝수자릿수 (즉 12345 같은 5자릿수 안들어옴)
123402
1+2+3 = 6, 4+0+2 = 6 이니 이건 LUCKY
접근방법
C++
for 문을 두개 써서 front, back 변수에 각각 앞부분의 합과 뒷부분의 합을 저장하고 둘을 비교함
swift
배열하나 두고, prefix, suffix로 배열 쪼개서 reduce로 합 구해서 바로 비교하고 출력 (고차함수 쓰고 싶어서 swift로도 풀었는데, string -> int 배열 만들려다가 고군분투함..)
오답노트
- swift에서 readline으로 읽으면 string -> 그대로 배열로 쓸 수 있지만 character을 int로 바꿀때
wholeNumberValue 써야함! 세줄 코드 완성~!
- C++에서도 타입변환하려고 용쓰다가 그냥 char-'0'하는걸로 합의봄 (평안-)
- 삼항연산자는 cout 밖에 있어야한다
소스코드
#include <iostream>
#include <string>
using namespace std;
int main(){
string s;
cin >> s;
int front = 0;
for(int i = 0; i < s.length()/2; i++){
front += s[i]-'0';
}
int back = 0;
for(int i = int(s.length()/2) ; i < s.length() ; i++){
back += s[i]-'0';
}
front == back ? cout << "LUCKY" << endl : cout << "READY" << endl;
return 0;
}
import Foundation
let inputs:String = readLine()!
let arr:[Int] = inputs.map { $0.wholeNumberValue! }
print(arr.prefix(arr.count/2).reduce(0) { $0 + $1 } == arr.suffix(arr.count/2).reduce(0) { $0 + $1 } ? "LUCKY" : "READY")
728x90
'알고리즘 문제풀이' 카테고리의 다른 글
[백준 15664] N과 M (9) (C++) (0) | 2024.06.22 |
---|---|
[백준 15654] N과 M (5) (C++) (0) | 2024.06.22 |
[백준 1439] 뒤집기 (C++) (0) | 2024.06.20 |
[백준 3190] 뱀 (C++) (0) | 2024.06.20 |
[백준 1620] 나는야 포켓몬 마스터 이다솜! (Swift) (0) | 2022.06.12 |
250x250
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 파이썬
- 수학
- 스택
- 토마토
- 우선순위큐
- Swift
- BFS
- c++
- dfs
- 게임이론
- 자바
- 이분탐색
- 정렬
- 다이나믹프로그래밍
- 프로그래머스
- 최대힙
- 웹크롤링
- 최단경로
- Stack
- 트리
- 백준
- 동적계획법
- 투포인터
- dp
- 브루트포스
- 그리디알고리즘
- 알고리즘
- 최소힙
- 문자열
- 백트래킹
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함