가운데 글자 가져오기

 

 문제 설명

 

단어 s의 가운데 글자를 반환하는 함수, solution을 만들어 보세요. 단어의 길이가 짝수라면 가운데 두글자를 반환하면 됩니다.

 

 제한 사항

 

  • s는 길이가 1 이상, 100이하인 스트링입니다.

 

 입출력 예

 

s return
"abcde" "c"
"qwer" "we"

 

 Python 코드

 

def solution(s):
    return s[(len(s)-1)//2 : len(s)//2+1]
  • 찍수인 경우 // 연산자로 몫을 구하고, 홀수일 경우에도 Slicing으로 계산
def solution(s):

    answer = ''

    if len(s) % 2 == 1:
        return s[int(len(s)/2)]
    else:
        return s[int(len(s)/2)-1 : int(len(s)/2)+1]

* 참고 링크 : https://jeongchul.tistory.com/642

# 가운데 글자 가져오기
def solution(s):
    # 글자의 길이
    s_length = len(s)
    # 글자의 길이가 홀수인 경우 가운데 글자를 뽑아내기
    if s_length % 2 == 1:
        answer = s[s_length // 2]
    # 글자의 길이가 짝수인 경우 가운데 두 글자를 뽑아내기
    if s_length % 2 == 0:
        answer = s[(s_length // 2) - 1:(s_length // 2) + 1]
    return answer

* 참고 링크 : https://greedysiru.tistory.com/381

  • 나머지 연산자 %
    어떤 정수를 2로 나누었을 때 나머지가 1이면 홀수, 0이면 짝수.
def solution(s):
	if len(s) % 2 == 1:
    		return 가운데 값
#s의 길이를 2로 나눈 나머지가 1이면 = 홀수면

"""
!POINT!
여기서 == 1은 쓰지 않아도 된다!
왜? 조건문에서는 '기냐 아니냐'를 보기 때문에, 
%를 2로 나눴기 때문에 0과 1의 값만 나오는 상황에서
숫자값 0은 False, 1은 True가 된다.
"""

#나머지가 1이 아니면 = 짝수면
	else:
		return 가운데 값에서 +1, -1 값

 

  • 나누기 연산자 //
def solution(s):
	if len(s) % 2 == 1:
		return s[len(s)//2]

#s의 리스트 s[]를 만들고 = 해당 인덱스의 '값'을 출력하기 위해
#len(s)//2한 인덱스의 값을 반환

	else:
		return 가운데 값에서 +_1 값
  • 최종 코드

 

def solution(s):
	if len(s) % 2 == 1:
		return s[len(s)//2]
	else:
		return s[(len(s)//2-1) : (len(s)//2+1)]

#짝수에서 출력하는 인덱스의 
#-1값 == len(s)//2-1)과 
#+1값 == (len(s)//2+1)을 함께 반환하자

* 참고 링크 : https://velog.io/@joy/%ED%8C%8C%EC%9D%B4%EC%8D%AC%EC%9C%BC%EB%A1%9C-%EA%B0%80%EC%9A%B4%EB%8D%B0-%EA%B8%80%EC%9E%90-%EA%B0%80%EC%A0%B8%EC%98%A4%EA%B8%B0

* 파이썬에수 함수를 쓰는 공식

def 함수명(인풋):
		코드1
		코드2 
		...
		return 아웃풋
        
#s라는 단어에 영향을 주는 solution라는 함수를 만들라고 했으니까

def solution(s):
    return 아웃풋

* 참고 링크 : https://velog.io/@joy/%ED%8C%8C%EC%9D%B4%EC%8D%AC%EC%9C%BC%EB%A1%9C-%EA%B0%80%EC%9A%B4%EB%8D%B0-%EA%B8%80%EC%9E%90-%EA%B0%80%EC%A0%B8%EC%98%A4%EA%B8%B0

 

* 산술 연산자

* 참고 링크 : https://wikidocs.net/1153

 

* len() 함수 : 매개변수로 들어온 문자열의 길이를 반환

- 내부에 있는 문자의 갯수 및 공백을 포함한 카운팅을 하여 반환해주는 함수

- 문자열의 길이를 구할 때 용이

strlen = "HelloWorld"
print(len(strlen))

# 결과값 10

 

* Slicing(슬라이싱) : 연속적인 객체들에 범위를 지정한 후 선택해서 객체들을 가져오는 방법

- 기본 형태

a[start : end : step]
  • start : 슬라이싱을 시작할 시작 위치
  • end : 슬라이싱을 끝낼 위치로 end는 포함되지 않음
  • step : stride(보폭)라고도 불리며, 몇 개씩 끊어서 가져올지와 방향을 정하는 옵션

- 인덱스 값들의 위치

a = ['a', 'b', 'c', 'd', 'e']

# Index References
# -------------------------------
# |  a  |  b  |  c  |  d  |  e  |
# -------------------------------
# |  0  |  1  |  2  |  3  |  4  |    // 양수의 경우
# -------------------------------
# | -5  | -4  | -3  | -2  | -1  |    // 음수의 경우
# -------------------------------

 

- 특정 시작위치부터 끝까지 가져오기

  • a[ start : ]
a = ['a', 'b', 'c', 'd', 'e']

a[ 1 : ]
# result : ['b', 'c', 'd', 'e']

a[ -3 : ]
# result : ['c', 'd', 'e']

 

- 시작점부터 특정 위치까지 가져오기

  • a[ : end ]
a = ['a', 'b', 'c', 'd', 'e']
a[ : 2 ]

# result : ['a', 'b']

 

- 특정 위치부터 특정 위치까지 모두 가져오기

  • a[ start : end ]
a = ['a', 'b', 'c', 'd', 'e']

a[ 2 : 4 ]
# result : ['c', 'd']


a[ -4 : -2 ]
# result : ['b', 'c']

* 참고 링크 : https://twpower.github.io/119-python-list-slicing-examples

 

 C++ 코드

 

#include <string>
#include <vector>
using namespace std;
 
string solution(string s) {
    string answer = "";
    static const size_t TWO = 2;
    const size_t length = s.length();
    
    if(length % TWO == 0)
    {
        //짝수
        answer += s[length / 2 - 1];
        answer += s[length / 2];
    }
    else
    {
        //홀수
        answer += s[length / 2];
    }
    return answer;
}

* 참고 링크 : https://blockdmask.tistory.com/275

+ Recent posts