0716 yesterdayReview

KOHHyunkyung·2021년 7월 15일
0

0715 PS : 2개 이하로 다른 비트

2개 이하로 다른 비트

경우의 수를 나누고 rfind()와 규칙만 잘 찾으면 됐던 문제
짝수의 경우는 num+1
홀수의 경우에는
1) '01'이 있을 때 : '01' -> '10'으로 교체 (3,5,7,...)
2) '01'이 없을 때 (= 모든 수가 1일 때) : 앞에 0을 붙이고 '10'으로 바꿈

규칙 찾는데 너무 쉽게 포기하는거 같아서 포기하지 않고 찾아보려는 노력을 하는게 중요한거 같다

#0715

def solution(numbers):
    answer = []
    
    for num in numbers:
    #짝수 일 때 
        if num % 2 == 0:
            answer.append(num+1)
    #홀수 일 때 
        else:
            bin_num = str(format(num,'b'))
            idx = bin_num.rfind('01')
            if idx == -1:
                bin_num = '10'+bin_num[1:]
                answer.append(int(bin_num,2))
            else:
                bin_num = bin_num[:idx]+'10'+bin_num[idx+2:]
                answer.append(int(bin_num,2))
    
    return answer

find 함수

1) find(찾을문자,찾기시작할위치) # 왼쪽부터 찾음
2) rfind(찾을 문자) # 오른쪽부터 찾음
- 문자열 중에 특정문자를 찾고 위치 반환, 없을 경우 -1 반환
3) startswith/endswith(시작하는/끝나는문자)
- 특정문자로 시작하는/끝나는지 여부를 알려줌 True/False 반환

String 함수

1) count(찾을문자)
- 찾을 문자의 개수 검색
2) strip(str)
- 문자열 및 공백 제거

  'www.example.com'.strip('m')
  # 'www.exaple.co'

3) lstrip(str)
- 선행문자만 지울 때 사용

 'www.wxample.com'.strip('www')
 # '.xample.com'
 'www.wxample.com'.lstrip('www')
 #'.wample.com'

4) rstrip(str)
- 후행문자만 지울 때 사용

내일 할 일

1. bfs, dfs 알고리즘 공부 (예시 풀기)
2. python의 해시 = 딕셔너리
3. 자주 사용하는 문법 정리
4. 오늘의 리뷰를 내일로 미루지 말자

5. 졸려...

profile
heeeeello

0개의 댓글