본문 바로가기

All91

2진법이 어려운 나을 위한 비트 연산자 탐구 [Algorithm #4] 평소처럼 코테 문제를 풀다가 내게 상당히 어려운 이진법 문제를 만났다. 당연히 비트 연산자를 날잡고 공부한 적 없는 나는 손도 못 댔다. 그래서 오늘 좀 정리하고 넘어가보려 한다. 1. 비트 연산자 종류 a 2022. 7. 30.
[파이썬] 카펫 [CODING TEST #27] https://school.programmers.co.kr/learn/courses/30/lessons/42842 yellow가 1 이상이라는 건 가로와 세로의 최소 길이가 3이라는 것을 의미한다. 그리고 가로와 세로의 곱은 직사각형 전체의 넓이 (가로 - 2) 와 (세로 - 2)의 곱은 yellow의 넓이 두 넓이조건과 최소 길이가 3임을 이용, 답을 찾을 때까지 while문을 반복한다. def solution(brown, yellow): xy = brown + yellow # 넓이 num = 3 while xy//num >= 3: # yellow가 존재하려면 한 변의 길이가 3 이상 if xy % num == 0 and (xy//num - 2) * (num - 2) == yellow : # 넓이 조건.. 2022. 7. 29.
[파이썬] 다트 게임 - 2018 KAKAO BLIND RECRUITMENT [CODING TEST #26] https://school.programmers.co.kr/learn/courses/30/lessons/17682 re 패키지를 이용하여 S,D,T에 대해 나누고, score 리스트에 제곱할 숫자 1,2,3을 먼저 할당한다. dartlist 리스트는 보너스와 점수가 합쳐진 문자열로 구성된다. 이렇게 나눈 케이스의 경우, 보너스는 해당 인덱스가 아니라 이전 인덱스에 저장된 점수가 해당 횟수에 적용된다. 어떠한 케이스에도 점수의 배수인 S,D,T가 포함될 뿐만 아니라, 두 자리 숫자인 10점 또한 인덱싱으로 쉽게 얻어오기 위해 이 방법으로 진행했다. enumerate를 이용해서 보너스 #,*가 있는지 없는지를 잘 구분하여 점수를 제곱하고 보너스를 적용시키면 된다. 점수를 먼저 제곱하면, 보너스가 어떤 순서로.. 2022. 7. 29.
[파이썬] 비밀지도 - 2018 KAKAO BLIND RECRUITMENT [CODING TEST #25] https://school.programmers.co.kr/learn/courses/30/lessons/17681 이 문제를 읽었을 때 딱 봐도 파이썬 이진수 변환을 이용해서 푸는 것이 좋을 것 같아 공부해볼 겸 찾아보았다. bin() 내장함수를 이용해서 간단하게 이진수로 바꾸어서 앞에 붙는 '0b'를 슬라이싱으로 제거한다. 그리고 zfill(n) 함수로 앞의 모자란 자리수를 0으로 채운 뒤, replace() 함수로 1을 '#'로, 0을 ' '로 치환한다. 각 arr의 row마다 반복하면 된다. def solution(n, arr1, arr2): answer = [] for i in range(n): temp = bin(arr1[i] | arr2[i]) temp = temp[2:].zfill(n) te.. 2022. 7. 29.
[파이썬] 같은 숫자는 싫어 [CODING TEST #24] https://school.programmers.co.kr/learn/courses/30/lessons/12906 들어온 숫자가 answer 마지막 숫자와 같으면 생략. 이후 인덱스 에러가 나서 answer 길이가 1 이상인 조건을 추가했다. 다르면 answer에 append. def solution(arr): answer = [] for num in arr: if len(answer)>0 and num == answer[-1]: continue else: answer.append(num) return answer 2022. 7. 29.
Face Recognition [Deep Learning Specialization #11] Coursera의 Deep Learning Specialization - Week 4의 강의를 수강하면서 필기한 내용을 바탕으로 정리한 글입니다. 지난 주차에는 Detection Algorithm을 살펴 보았습니다. 이번 주차에는 Face Recognition을 살펴 보겠습니다. Verification vs. Recognition Verification(인증)은 사진과 ID가 주어지면, 사진 속 인물과 ID가 일치하는 지를 판단하여 True / False를 내보냅니다. 반면, Face Recognition(안면인식)은 k명에 대한 정보가 담긴 데이터베이스가 있을 때, 사진 속에 데이터베이스에 존재하는 사람이 있는지, 있다면 누가 있는지를 알려줍니다. 인증과 다르게 일대다 메커니즘으로, 훨씬 어렵고 복잡합.. 2022. 7. 28.
Detection [Deep Learning Specialization #10] Coursera의 Deep Learning Specialization - Week 4의 강의를 수강하면서 필기한 내용을 바탕으로 정리한 글입니다. 지난 주차에는 여러 CNN 모델 연구를 살펴 보았습니다. 이번 주차에는 Detection Algorithm을 살펴 보겠습니다. Landmark Detection 하나의 이미지를 분류(Classification)하는 모델과 그 좌표를 찾는(Localization) 모델은 하나의 물체에 대해서만 수행됩니다. 하지만 실제 사진 속에는 고양이, 차, 신호등, 횡단보도 등이 한 번에 들어있는 경우가 훨씬 많습니다. 입력 영상 속에 물체가 있는지, 있다면 어떤 물체들이 어디에 있는지를 수행하는 것을 탐지(Detection)라고 합니다. 탐지 모델의 Label y를 살펴보.. 2022. 7. 27.
[파이썬] 캐시 - 2018 KAKAO BLIND RECRUITMENT [CODING TEST #23] https://school.programmers.co.kr/learn/courses/30/lessons/17680 LRU나, Cache hit나, Cache miss? 문제를 한참동안 살펴봤다. 처음 들어보는 것들이기는 한데 원래 카카오가 설명을 안해주던가?? 참다 참다 검색해봤는데, 별건 아니었다. 한 번 본 단어들은 Cache에 저장되고, 이후 들어오는 단어가 Cache에 있으면 실행 시간이 단축되고 그 단어가 Cache의 가장 앞으로 오는 알고리즘이 LRU이다. 새로운 도시가 들어오면 가장 나중에 들어온 도시가 Cache에서 빠져야 된다. 근데 리스트는 맨 앞의 원소를 빼는 게 없으니 큐를 이용하였다. 검색해서 찾아보니 list.pop(index) 함수를 이용해서 리스트 내 원하는 인덱스의 원소를 .. 2022. 7. 27.
[파이썬] 행렬 테두리 회전하기 - 2021 Dev-Matching: 웹 백엔드 개발자 [CODING TEST #22] https://school.programmers.co.kr/learn/courses/30/lessons/77485 queries마다 루프를 돌면서 왼쪽 모서리부터 밀기로 생각했다면 왼쪽 위 값이 밀려 사라지기 때문에 마지막에 갱신할 수가 없으니 왼쪽 위 값을 temp에 저장한다. 그리고 왼쪽 / 아래 / 오른쪽 / 위 순서대로 밀고, 밀면서 만난 값들 중 최솟값을 실시간으로 저장한다. 잘 풀었는데 board 리스트 만드는 걸 columns * j로 안하고 row * j로 해버리는 탓에 계속 못풀고 있었다. ㅠ def solution(rows, columns, queries): answer = [] board = [[columns * j + i + 1 for i in range(columns)] for j.. 2022. 7. 27.
728x90