• Jan
  • Feb
  • Mar
  • Apr
  • May
  • Jun
  • Jul
  • Aug
  • Sep
  • Oct
  • Nov
  • Dec
  • Sun
  • Mon
  • Tue
  • Wed
  • Thu
  • Fri
  • Sat
  • 27
  • 28
  • 29
  • 30
  • 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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

#12903 가운데 글자 가져오기

image

문제 정리

홀수일 땐 가운데 글자, 짝수라면 가운데 두 글자 반환

생각해보기

n이 만약 10이면 5,6을,
n이 만약 9면 5를 반환해야 한다.
s의 size가 짝수면 n/2, n/2+1을,
s의 size가 홀수면 n/2+1 반환

코드 쓰기

근데 string idx가 0부터 시작이니까!!! 여기서 헷갈리면 안 됨.
n이 만약 10이면 index는 0~9고,
0 1 2 3 4 5 6 7 8 9 니까 4, 5번째를 반환해야 함 -> size/2 -1, size/2

n이 만약 5면 index는 0~4고,
0 1 2 3 4 니까 size / 2 반환

내 풀이

#include <string>
#include <vector>
#include <iostream>

using namespace std;

string solution(string s) {
    string answer = "";
    
    if(s.size() % 2 == 0) {
        answer += s[s.size() / 2 - 1];
        answer += s[s.size() / 2];
    } else {
        answer += s[s.size() / 2];
    }
    
    return answer;
}

풀고 나서 알게된 것

두개 뽑을 땐

return s.substr(len/2-1,2);

서브스트링으로 해도~~ 시작점이랑 몇개인지인듯