알고리즘/프로그래머스
[프로그래머스/c++/swift] 푸드 파이트 대회
녕이
2022. 11. 25. 12:16
728x90
https://school.programmers.co.kr/learn/courses/30/lessons/134240
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
c++
#include <string>
#include <vector>
using namespace std;
string solution(vector<int> food) {
string front = "";
string back = "";
for(int i=1; i<food.size(); i++){
int n = food[i]/2;
while(n--){
front += to_string(i);
back = to_string(i) + back;
}
}
return front + "0" + back;
}
여기서 back은 reverse로 할 수 도 있다
swift
import Foundation
func solution(_ food:[Int]) -> String {
var front = ""
var back = ""
for i in 1..<food.count {
var n = food[i]/2
while n != 0 {
front += String(i)
back = String(i) + back
n -= 1
}
}
return front + "0" + back
}
c++를 먼저 풀어보고,, swift로도 생각해보는 거라 다른 사람의 코드를 보는 게 도움이 될 것이라고 생각한다.
import Foundation
func solution(_ food:[Int]) -> String {
var result = ""
for i in food.indices {
result += String(repeating: String(i), count: food[i] / 2)
}
return result + "0" + result.reversed()
}
i를 food[i]/2번 반복했다. 나와 같은 생각을 했는데, 구현하는 방식이 이쪽이 좀 더 세련된 것 같다. 오호~~
728x90