본문 바로가기

Python

[Python] Lv.0 코딩 기초 트레이닝 - 코드 처리하기, 등차수열의 특정한 항만 더하기

코딩 기초 트레이닝

1. 코드 처리하기

  • code[idx] == 1면 mode 0→1, 1 →0으로 변경
    • XOR 연산(값이 같으면 0, 다르면 1)
    • mode ^ = 1
      • 0 ^ 1 = 1이 나오므로 mode 0→1 변경
      • 1 ^ 1 = 0이 나오므로 mode 1 →0 변경
값1 XOR 연산 값2 결과
0 ^ 0 0
0 ^ 1 1
1 ^ 0 1
1 ^ 1 0
  • mode 0일 때 i가 짝수면 / mode 1일 때 홀수면 answer에 code[i] 추가
    • 짝수: i % 2 == 0 == mode가 0인 상황
    • 홀수: i % 2 == 1 == mode가 1인 상황 ⇒ if i % 2 == mode:
  • 만약 answer이 빈 문자열이라면 "EMPTY" return
    • if answer == '':
         return 'EMPTY'
def solution(code):
    answer = ''
    mode = 0
    for i in range(len(code)):
        if code[i] == '1':
            mode ^= 1
        else:
            if i % 2 == mode:
                answer += code[i]
    if answer == '':
        return 'EMPTY'
    return answer

 

 

2. 등차수열의 특정한 항만 더하기

  • included가 True인 항만 더한 값
    • True값을 정수화하면 1
      • if int(includedi[i]) == 1:
  • 등차수열: a 정수, d 공차
    • answer += (a+(d*i))
      • 만약 3 , 4, [true, false, false, true, true]라면
      • 3 + 15 + 19
        • 3 = 3 + (4*0)
        • 15 = 3 + (4*3)
        • 19 = 3 + (4*4)
def solution(a, d, included):
    answer = 0
    for i in range(len(included)):
        if int(included[i]) == 1:
            answer += (a+(d*i))
        else:
            pass
    return answer

 

참고 사이트: https://programmers.co.kr/

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

반응형