CODINGTEST_두 개 뽑아서 더하기, 다음 큰 숫자

코넬·2023년 7월 2일
0

CodingTest_PCCE

목록 보기
17/17
post-thumbnail

두 개 뽑아서 더하기

  • 개념 파악하기 좋은 문제 ! list 와 set 의 차이점을 아는 것이 중요하다.
  1. 두 개 뽑는 과정은 중첩 for 문을 활용하여 작성한다. 범위는 중첩 for 문에서 흔히 사용하는 툴로 한칸 차이나게 두기 !
  2. answer 배열에다가 담아둔다. append 활용하기
  3. set(answer): answer 리스트를 set으로 변환하여 중복된 값을 제거한다.
  4. list(set(answer)): 앞서 얻은 set 객체를 다시 list로 변환하여 중복이 제거된 리스트를 생성한다. sort 사용하기 위함 !
  5. sort(list(set(answer))): 앞서 생성된 리스트를 sort 함수를 사용하여 오름차순으로 정렬을 진행한다.

결과적으로, sort(list(set(answer)))를 사용하면 중복된 값이 제거된 후 오름차순으로 정렬된 리스트를 얻을 수 있다!

# 내가 작성한 코드
def solution(numbers):
    answer = []
    for i in range(len(numbers)):
        for j in range(i+1, len(numbers)):
            answer.append(numbers[i] + numbers[j])
            
    answer = list(set(answer))
    answer.sort()
    return answer

두 개 뽑아서 더하기 - 나도 풀래 !

다음 큰 숫자

  • 짧고 간결하게 적으려고 노력하기 , 다음 수랑 비교는 +1 로 !
  1. 차례대로 조건 맞추려고 노력했다.
  2. 다음 수 count 를 위해서 변수 i 를 지정하였다. i 선언 후 원하는 값 나오면 빠져나올 수 있는 while 문 사용하였다.
  3. 이진수 변환은 bin으로 처리하고, 조건 1 맞추기위해 bin(n) 과 bin(n+i) 를 지정, 그 다음수 추가 진행을 위해 while 문 안 조건문 빠져나오면 i 하나씩 count
  4. 조건 2 번이 if 문 에 구현되어있음. 1의 갯수가 같을 경우에, n의 다음 큰 숫자를 return
  5. 조건 3 번은 자연스럽게 만족 가능, 왜냐, 우리는 n 을 가만히 뒀기 때문에 !

오랜만에 푸니까 재밌다 ,,😋

# 내가 짠 코드
def solution(n):
    i = 1
    while True:
        if bin(n).count('1') == bin(n+i).count('1'):
            return n + i
        i += 1

다음 큰 숫자 - 나도 풀어볼래 !

profile
어서오세요.

0개의 댓글