쑤야의 개발 블로그

고정 헤더 영역

글 제목

메뉴 레이어

쑤야의 개발 블로그

메뉴 리스트

  • 홈
  • 태그
  • 분류 전체보기 (98)
    • Algorithm (52)
    • CS (0)
    • AI (15)
      • PyTorch (4)
      • 논문 (3)
      • Open3D (7)
      • DL (0)
    • iOS (30)
      • RxSwift (4)
      • Combine (4)
      • Swift (1)
    • ETC (1)
      • 기타 (1)

검색 레이어

쑤야의 개발 블로그

검색 영역

컨텐츠 검색

분류 전체보기

  • [프로그래머스] 뉴스 클러스터링

    2023.12.21 by 쑤야.

  • [프로그래머스] 피로도

    2023.12.20 by 쑤야.

  • [프로그래머스] 프로세스

    2023.12.20 by 쑤야.

  • 토스트 메시지 싱글톤으로 관리하기

    2023.12.19 by 쑤야.

  • [프로그래머스] 할인 행사

    2023.12.18 by 쑤야.

  • [프로그래머스] H-Index

    2023.12.18 by 쑤야.

  • [프로그래머스] n^2 배열 자르기

    2023.12.15 by 쑤야.

  • [프로그래머스] 괄호 회전하기

    2023.12.15 by 쑤야.

[프로그래머스] 뉴스 클러스터링

https://school.programmers.co.kr/learn/courses/30/lessons/17677?language=python3 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 접근 다중 집합에 대해 각 케이스별 개수 정보가 필요하므로 Set이 아닌, Dictionary를 사용한다. 로직 문자열 대소문자를 하나로 통일하기을 위해 소문자화 시킨다. 2글자씩 끊어 딕셔너리에 케이스를 Key값으로, 케이스 개수를 Value로 저장하낟. str1에 대해 우선 반복문을 수행한다. str1의 Key값이 str2에도 존재할 경우, 교집합과 합집합을 모두..

Algorithm 2023. 12. 21. 13:16

[프로그래머스] 피로도

https://school.programmers.co.kr/learn/courses/30/lessons/87946?language=python3# 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 로직 DFS를 활용하여 탐험 순서 케이스를 생성한다. 생성된 모든 탐험 순서 케이스를 점검한다. 최소 필요 피로도보다 남아있는 피로도가 같거나 높은 경우, 탐험을 수행한다 최소 필요 피로도보다 남아있는 피로도가 낮은 경우, 탐험을 중단한다. max를 통해 탐험한 던전 수의 최댓값을 갱신한다. 코드 def solution(k, dungeons): orders = []..

Algorithm 2023. 12. 20. 14:30

[프로그래머스] 프로세스

https://school.programmers.co.kr/learn/courses/30/lessons/42587?language=python3 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 접근 enqueue와 dequeue가 반복되는데, 우선순위 값은 중복될 수 있으므로 타겟 구분을 위해 인덱스 값 저장이 필요 로직 (인덱스, 우선순위)을 데이터로 저장 priorities를 오름차순 정렬을 통해 마지막 원소를 기준으로 현재 가장 높은 우선순위가 무엇인지, 제거해야 하는 우선순위가 무엇인지 판별한다. 내림차순 정렬로 첫 번째 원소를 기준으로 할 경우, ..

Algorithm 2023. 12. 20. 14:26

토스트 메시지 싱글톤으로 관리하기

A/B 프로젝트에서 알림 UI로 토스트 메시지를 사용한다. 문제를 해결해 나가는 과정에서 운영체제 개념들이 많이 생각났고, 고민이 꽤 많았었는데 요구사항을 충족해 나가는 과정, 그리고 문제 상황에서 고민하고 해결한 과정들을 기록해 본다. 요구사항 1. 토스트 메시지는 한 번에 하나씩만 보여준다. 한 번에 하나씩 처리하기 위해서, 싱글톤 인스턴스를 사용해야겠다는 생각을 가장 먼저 했다. 방법 1. semaphore → 실패 방법 2. 뮤텍스 → 성공 isAnimating을 임계 구역에 진입할 수 있는 키로 사용하였다. public final class ToastMessage { private init() { } private static var isAnimating = false private static..

iOS 2023. 12. 19. 23:39

[프로그래머스] 할인 행사

https://school.programmers.co.kr/learn/courses/30/lessons/131127?language=python3 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 접근 회원 자격 10일 → 슬라이딩 윈도우 활용 제품 구매 수량을 카운팅 → 딕셔너리 활용 로직 구매해야 하는 상품과, 앞으로 구매해야 하는 개수를 담은 제품 카운팅 딕셔너리를 생성 후, 초기화한다. 0부터 9까지 처음 10개에 대해서 카운팅을 갱신한다. 인덱스 10부터 discount의 길이 + 10까지 반복문을 시작한다. 10을 모두 고려하지 않고, 9일 또는 ..

Algorithm 2023. 12. 18. 13:36

[프로그래머스] H-Index

https://school.programmers.co.kr/learn/courses/30/lessons/42747 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 접근 citations 데이터로 점검할 경우, citations에 속하지 않는 인용 횟수에 대해 점검할 수 없다. 주어진 범위 내에서 조건을 만족하는 최대 값을 찾는 것이 목표이므로, 이진 탐색을 사용할 수 있다. 로직 논문 인용 횟수의 최솟값인 0과 최댓값인 10000을 경계로 하여 이진 탐색을 수행한다. 조건을 만족하는 경우 max를 사용해서 갱신한다. 조건을 만족하는 경우 left 값을 mi..

Algorithm 2023. 12. 18. 13:04

[프로그래머스] n^2 배열 자르기

접근 설명처럼 2차 배열 → 슬라이싱 및 1차 배열 변환으로 접근했다가는 시간초과가 발생한다. 인덱스 값을 활용하여 left부터 right 인덱스만 접근한다. 로직 인덱스를 n으로 나눴을 때의 몫과 나머지 중 큰 값에 1을 더한 값이 원소값이 된다. (직접 작성해보면 쉽게 찾을 수 있다) result 배열에 left부터 right 인덱스에 해당하는 값을 넣어준다. 코드 def solution(n, left, right): result = [] for i in range(left, right+1): result.append(max(i//n, i%n)+1) return result

Algorithm 2023. 12. 15. 15:21

[프로그래머스] 괄호 회전하기

접근 괄호 문제에서 올바른 괄호인지 판단하려면 스택 활용 문자열 회전이 필요하므로 이중 반복문 활용 로직 i는 시작점을 나타내는 인덱스, j는 현재 점검하고 있는 원소 인덱스 스택의 마지막 원소와 현재 원소를 합친 문자열이 (), [], {} 에 해당하는 올바른 괄호인지 확인 반복문이 종료된 후 스택이 비어있다면 올바른 괄호로 result 값 1 증가, 비어있지 않으면 올바르지 않은 괄호 코드 def solution(s): s = list(s) bracket = ["()","[]","{}"] result = 0 for i in range(0, len(s)): stack = [s[i]] j = 0 if i+1 == len(s) else i+1 while j != i: if len(stack) != 0 an..

Algorithm 2023. 12. 15. 14:38

추가 정보

인기글

최신글

페이징

이전
1 ··· 6 7 8 9 10 11 12 13
다음
TISTORY
쑤야의 개발 블로그 © Magazine Lab
페이스북 트위터 인스타그램 유투브 메일

티스토리툴바