본문 바로가기

분류 전체보기

(107)
[Algorithm - Stack] Kotlin - programmers Lv1 [ 크레인 게임 ] [ Algorithm Link ] 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 최종 코드 미리보기 import java.util.Stack private fun solution(board: Array, moves: IntArray): Int { var answer = 0 var stack = Stack() moves.forEach { for (i in board.indices) { if (board[i][it - 1] != 0) { if (stack.isNotEmpty() && stack.peek() == board[i][it - 1] ) { stack.. 2024. 4. 23. 05:03
[TIL] Kotlin - 재귀 함수, 꼬리재귀 ( Tailrec ) 함수 Topic = 꼬리재귀 함수에 대해서 알아보고 일반 재귀함수, loop 함수와의 차이점을 알아보자. 꼬리재귀 함수를 사용하는 이유 ✅꼬리재귀 함수 개념 정리 이전에 간단한 예제를 통해 꼬리재귀 함수를 사용하는 이유에 대해 작성해볼 것. 아래 3 가지 방식의 코드는 모두, 두 정수 a, b 의 최대 공약수를 리턴하는 함수이다. 가독성이 좋은 코드는? = 재귀함수 메모리 효율성이 좋은 코드는 ? = loop 함수 가독성도 좋고, 메모리 효율성도 좋은 방식 ? = 꼬리재귀 함수 [ 코드 1. 재귀 함수 ] fun gcd(a: Int, b: Int): Int { if (b == 0) return a return gcd(b, a % b) } [ 코드 2. loop ( while ) 함수 ] fun gcd2(a: .. 2024. 4. 20. 02:06
[Algorithm - Unicode] Kotlin - programmers Lv1 [ 시저 암호 ] [ Algorithm Link ] 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 최종 코드 미리보기 fun solution2(str: String, n: Int): String { var answer = "" str.map { answer += when (it) { in 'a'..'z' -> ('a'.code + (it.code + n - 'a'.code) % ('z' - 'a' + 1)).toChar() in 'A'..'Z' -> ('A'.code + (it.code + n - 'A'.code) % ('Z' - 'A' + 1)).toChar() else.. 2024. 4. 16. 21:58
[TIL] 계산 복잡도 - 시간복잡도 ( Time Complexity ) 1. 개념, 점근적 표기법 Topic = 시간 복잡도를 학습해야 하는 이유, 시간복잡도의 개념, 활용 등에 대해서 학습해보자 Why - 시간 복잡도를 배우기 전에 함께 알아본 것 ( 상위 개념, 학습하는 이유 ) 상위 개념 - 계산 복잡도 이론 ☑️ ( 일련의 과정을 자원 측정 및 분류, 구성된 모임의 복잡도 확인, 점근적 표현 ) ➡️ 아래에서 시간 복잡도 계산시 해당 단계를 활용하여 다룰 것. 계산 복잡도 이론은 알고리즘이 일련의 문제를 해결하는데 필요한 자원을 측정하고 분류하는 이론으로, 알고리즘을 복잡도에 따른 데이터 구조의 모임을 구성하고 알고리즘이 소모하는 시간과 메모리 사용량 등의 자원을 효율성 지표로 사용하는 것이다. 이 효율성 지표중, 소모하는 시간의 효율성 지표를 시간 복잡도, 메모리 사용량의 지표를 공간복잡도라.. 2024. 4. 14. 18:38
[Algorithm] Kotlin / Programmers Lv0 [ 평행 ] [ Algorithm Link ] 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr  최종 코드 미리보기class Solution { fun solution(dots: Array): Int { var answer = 0 (dots.indices).map { dotA -> var excluedDotA = dots.filterIndexed { index, _ -> index !=dotA } excluedDotA.mapIndexed { dotBIndex, dotB -> v.. 2024. 4. 6. 12:09
[TIL] CSS / word-break [ 문자열 단어기준 / 글자기준 줄바꿈 속성 ] Topic = 한글 문자열 단어 기준 / 글자 기준 줄바꿈 속성 학습하기 CSS / word-break [ 속성 설명 ] word-break 속성은요소 내에서 줄 끝에 도달했을 때 단어가 어떻게 줄바꿈 처리 되는지 지정하는 데 사용된다. 오버프로를 방지하기 위해 브라우저가 분리해야 하는지 여부와 다양한 유형의 언어 및 텍스트 콘텐츠를 처리하는 방법을 제공한다. [ 속성 값 ] word-break: normal 🟨 normal ( 기본값 ) CJK ( 중국어, 일본어, 한국어 )는 글자 기준으로, CJK 이외의 문자는 공백 또는 하이픈과 같이 허용된 분리점 에서 줄바꿈 처리 한다. 영문의 경우 단어 기준으로 줄바꿈 처리가 되지만, 한글은 글자 기준으로 줄바꿈 처리가 되는 모습이다. 🟨 break-all 컨.. 2024. 3. 31. 12:51
[TIL] JavaScript - InterSectionObserver - 속성 및 기본 사용 편 Topic = 애니메이션 트리거링 → 웹 페이지 특정 요소가 뷰포트 or 비교 요소 에 있을 때 애니메이션을 실행하기. IntersectionObserver IntersectionObserver는 특정 대상 요소(target)와 root(뷰포트 or 비교 root 요소)가 서로 교차하는 영역을 관찰하여 대상 요소가 뷰포트 또는 비교 요소 root 에 교차되어 화면에 포함되는지의 여부를 비동기적으로 감지할 수 있는 기능이다. 해당 JS API를 통해서 무한 스크롤, 이미지 및 기타 요소들의 지연 로딩으로 애니메이션 처리 (애니메이션 트리거링), 고정 요소 구현, 웹페이지 요소 가시성 추적 등에 기능을 구현할 수 있다. Intersection Observer 사용하기 [ 1. 관찰자 생성 ] const io.. 2024. 3. 30. 10:58
[Algorithm] Kotlin - programmers Lv0 [ 안전지대 ] - 테스트 8, 9번 에러 해결 [ Algorithm Link ] 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 최종 코드 미리보기 [ Programmers - sinoso 님 풀이 참고 및 해석 ] private fun solution(board: Array): Int = board.indices.map { row -> board[row].indices.filter { board[row][it] == 1 }.forEach { col -> ((row - 1).coerceAtLeast(0)..(row + 1).coerceAtMost(board.lastIndex)).map { row2 ->.. 2024. 3. 20. 06:14