쑤야의 개발 블로그

고정 헤더 영역

글 제목

메뉴 레이어

쑤야의 개발 블로그

메뉴 리스트

  • 홈
  • 태그
  • 분류 전체보기 (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)

검색 레이어

쑤야의 개발 블로그

검색 영역

컨텐츠 검색

분류 전체보기

  • [프로그래머스] 삼각 달팽이

    2024.03.04 by 쑤야.

  • throttle

    2024.02.29 by 쑤야.

  • 재사용 가능한 ViewModel 구현하기

    2024.02.18 by 쑤야.

  • [프로그래머스] 연속된 부분 수열의 합

    2024.02.05 by 쑤야.

  • [소프티어] 택배 마스터 광우

    2024.02.01 by 쑤야.

  • Algorithm with python

    2024.02.01 by 쑤야.

  • [소프티어] 스마트 물류

    2024.02.01 by 쑤야.

  • [소프티어] 우물 안 개구리

    2024.01.31 by 쑤야.

[프로그래머스] 삼각 달팽이

https://school.programmers.co.kr/learn/courses/30/lessons/68645 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 접근 규칙을 찾아서 구현하는 문제 왼쪽 → 아래 → 오른쪽 순서로 방향 진행 왼쪽은 row +1, col 유지 아래쪽은 row 유지, col +1 오른쪽은 row와 col 모두 -1씩 2차원 배열을 생성해서 각 row의 데이터 크기를 미리 초기화한다. 값을 반환할 때 flatMap을 활용하여 2차원 배열을 1차원 배열로 변환한다. 코드 import Foundation func solution(_ ..

Algorithm 2024. 3. 4. 15:45

throttle

https://developer.apple.com/documentation/combine/fail/throttle(for:scheduler:latest:) throttle(for:scheduler:latest:) | Apple Developer Documentation Publishes either the most-recent or first element published by the upstream publisher in the specified time interval. developer.apple.com RxSwift와 Combine을 사용하면서 throttle에 대해 들어보기는 했는데, 제대로 사용해 보거나 공부해 본 적이 없다. throttle에 대해 학습하고, 현재 진행 중인 프로젝트에도 적..

iOS/Combine 2024. 2. 29. 13:51

재사용 가능한 ViewModel 구현하기

상황 A/B 프로젝트에서 토픽 조회 API와 투표 API를 3개의 탭에서 사용한다. 각 ViewModel에 동일한 로직을 3번이나 구현하는 것은 번거로운 일이라고 생각했다. 이를 개선하기 위해서 한 번만 구현하고, 재사용할 수 있는 코드를 작성해야겠다는 생각을 하게 되었다. 개선 평소 책임 지향 설계를 위해 프로토콜로 ViewModel이 가지는 책임을 먼저 정의하고, 이후 구현체를 구현하는 방식으로 ViewModel을 구현한다. 또한 프로토콜 초기 구현 개념을 쏠쏠히 사용하고 있다. 평소 애용하던 프로토콜과 초기 구현을 활용하여 ViewModel을 구현하면 재사용성 가능한 ViewModel을 구현할 수 있겠다는 생각을 하게 되었다. 아이디어를 바탕으로 토픽 조회 ViewModel 프로토콜을 생성하고, 초..

iOS 2024. 2. 18. 11:38

[프로그래머스] 연속된 부분 수열의 합

https://school.programmers.co.kr/learn/courses/30/lessons/178870 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 접근 길이가 최소이며, 앞쪽에 등장하는 수열 찾기 → 투포인터 로직 구간 누적 합이 k보다 작거나 같을 때, end 포인터를 갱신해야 한다. 이때 end 포인터가 마지막 인덱스를 가리키고 있다면, 빠른 종료를 시킨다. 코드 import Foundation func solution(_ sequence:[Int], _ k:Int) -> [Int] { var start = 0, end = 0 var ..

Algorithm 2024. 2. 5. 10:28

[소프티어] 택배 마스터 광우

https://softeer.ai/practice/6273 Softeer - 현대자동차그룹 SW인재확보플랫폼 softeer.ai 접근 최소 무게를 들 수 있는 최적의 순서를 찾아야 한다 → 순열 코드 import sys import itertools n, m, k = list(map(int, sys.stdin.readline().split())) w = list(map(int, sys.stdin.readline().split())) answer = 2**128 for permutation in list(itertools.permutations(w, n)): p = 0 temp = 0 for i in range(k): tempW = 0 while tempW + permutation[p]

Algorithm 2024. 2. 1. 12:54

Algorithm with python

파이썬으로 알고리즘을 풀기 위해 필요한 개념들을 정리합니다. 문자열 문자열의 대/소문자화. .upper() # 대문자 .lower() # 소문자 특정 문자를 기준으로 문자열 분리 .split(문자) 문자열의 리스트화 list(문자열) 리스트화된 문자열 다시 문자열로 변환하기 ''.join(문자열 배열) 알파벳으로만 구성되어있는지 확인 문자열.isalpha() 배열 원소 추가 배열.append(원소) 마지막 원소 삭제 배열.pop() del 배열[-1] 첫 번째 원소 삭제 삭제한 원소 = 배열.pop(0) #삭제한 원소를 반환한다. 조건을 충족하는 첫 번째 인덱스 찾기 arr.index(원소 값) 정렬 배열.sort() # 오름차순 배열.sort(reversed=True) # 내림차순 원소의 길이로 정렬 ..

Algorithm 2024. 2. 1. 12:26

[소프티어] 스마트 물류

https://softeer.ai/practice/6279 Softeer - 현대자동차그룹 SW인재확보플랫폼 softeer.ai 접근 입력에 대해서 부품을 집을 수 있는 최대 로봇 수 왼쪽부터 가능한 범위를 점검하며 부품이 있는 경우 집는다 코드 import sys n, k = list(map(int,sys.stdin.readline().split())) data = list(sys.stdin.readline().rstrip()) answer = 0 for i in range(0,len(data)): if data[i] == 'P': for j in range(i-k,i+k+1): if j=n: continue elif data[j] == 'H': answer += 1 data[j] = '-' break..

Algorithm 2024. 2. 1. 11:28

[소프티어] 우물 안 개구리

https://softeer.ai/practice/6289 Softeer - 현대자동차그룹 SW인재확보플랫폼 softeer.ai 접근 자신과 친분 관계가 있는 다른 회원보다 들 수 있는 역기의 무게가 무거우면 자신이 최고라고 생각한다 → 같거나 작은 경우, 최고가 아님으로 데이터를 변경한다 누구와도 친분이 없는 멤버는 본인이 최고라고 생각한다 → 최고인지 여부를 저장하는 배열을 True로 초기화 한다 2가지 방식으로 코드를 작성할 수 있다. 친구 관계 2차 배열로 저장 후, 최고인지 여부 점검 친구 관계 정보를 입력 받으면서, 바로 최고인지 여부 점검 코드 import sys n, m = list(map(int,input().split())) w = list(map(int,sys.stdin.readlin..

Algorithm 2024. 1. 31. 10:56

추가 정보

인기글

최신글

페이징

이전
1 2 3 4 5 6 7 ··· 13
다음
TISTORY
쑤야의 개발 블로그 © Magazine Lab
페이스북 트위터 인스타그램 유투브 메일

티스토리툴바