전체 글

· PS/BOJ
[Gold IV] 최대 정사각형 - 4095 문제 링크 성능 요약 메모리: 77036 KB, 시간: 2476 ms 분류 다이나믹 프로그래밍 문제 설명 1과 0으로 이루어진 NxM크기의 행렬이 주어졌을 때, 1로만 이루어진 가장 큰 정사각형 부분 행렬 찾는 프로그램을 작성하시오. 입력 입력은 여러 테스트 케이스로 이루어져 있다. 각 테스트 케이스의 첫째 줄에는 N과 M이 주어진다. (1 ≤ N,M ≤ 1,000) 다음 N개의 줄에는 공백으로 구분된 M개의 수가 주어진다. 마지막 줄에는 0이 두 개가 주어진다. 출력 각 테스트 케이스에 대해서 가장 큰 정사각형의 너비 또는 높이를 출력한다. 만약 그런 정사각형이 없을 때는 0을 출력한다. 풀이 i) DP문제로, 현재 인덱스 값이 1이라면 현재 인덱스를 기준으..
· PS/BOJ
[Silver II] N번째 큰 수 - 2075 문제 링크 성능 요약 메모리: 149928 KB, 시간: 680 ms 분류 자료 구조, 우선순위 큐, 정렬 문제 설명 N×N의 표에 수 N2개 채워져 있다. 채워진 수에는 한 가지 특징이 있는데, 모든 수는 자신의 한 칸 위에 있는 수보다 크다는 것이다. N=5일 때의 예를 보자. 12 7 9 15 5 13 8 11 19 6 21 10 26 31 16 48 14 28 35 25 52 20 32 41 49 이러한 표가 주어졌을 때, N번째 큰 수를 찾는 프로그램을 작성하시오. 표에 채워진 수는 모두 다르다. 입력 첫째 줄에 N(1 ≤ N ≤ 1,500)이 주어진다. 다음 N개의 줄에는 각 줄마다 N개의 수가 주어진다. 표에 적힌 수는 -10억보다 크거나 같고..
· PS/BOJ
[Silver II] 최대 힙 - 11279 문제 링크 성능 요약 메모리: 70668 KB, 시간: 736 ms 분류 자료 구조, 우선순위 큐 문제 설명 널리 잘 알려진 자료구조 중 최대 힙이 있다. 최대 힙을 이용하여 다음과 같은 연산을 지원하는 프로그램을 작성하시오. 배열에 자연수 x를 넣는다. 배열에서 가장 큰 값을 출력하고, 그 값을 배열에서 제거한다. 프로그램은 처음에 비어있는 배열에서 시작하게 된다. 입력 첫째 줄에 연산의 개수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 N개의 줄에는 연산에 대한 정보를 나타내는 정수 x가 주어진다. 만약 x가 자연수라면 배열에 x라는 값을 넣는(추가하는) 연산이고, x가 0이라면 배열에서 가장 큰 값을 출력하고 그 값을 배열에서 제거하는 경우이다. ..
· PS/BOJ
[Silver IV] 괄호 - 9012 문제 링크 성능 요약 메모리: 69100 KB, 시간: 8 ms 분류 자료 구조, 스택, 문자열 문제 설명 괄호 문자열(Parenthesis String, PS)은 두 개의 괄호 기호인 ‘(’ 와 ‘)’ 만으로 구성되어 있는 문자열이다. 그 중에서 괄호의 모양이 바르게 구성된 문자열을 올바른 괄호 문자열(Valid PS, VPS)이라고 부른다. 한 쌍의 괄호 기호로 된 “( )” 문자열은 기본 VPS 이라고 부른다. 만일 x 가 VPS 라면 이것을 하나의 괄호에 넣은 새로운 문자열 “(x)”도 VPS 가 된다. 그리고 두 VPS x 와 y를 접합(concatenation)시킨 새로운 문자열 xy도 VPS 가 된다. 예를 들어 “(())()”와 “((()))” 는 V..
· Swift
Swift API Design Guidelines 이번 내용은 Swift API Design Guidelines에 대한 내용입니다. Convention을 맞추어 코딩을 하는 것도 협업의 일부라고 생각하기 때문에 이번 기회에 정리해보고자 합니다. 티스토리가 리스트로 작성하는 데 생각대로 되지 않아서(그렇다고 HTML로 작성하기엔 귀,,찮),, 리스트의 계층을 ● → ○ → ■ 순서로 봐주시면 좋을 것 같습니다. 기본 ● 사용에 대한 명확성(Clarity at the point of use)이 가장 중요한 목표입니다. 메소드와 속성과 같은 엔티티들은 한 번만 선언되지만 반복적으로 사용됩니다. 정확하고 명확하게 API를 디자인하십시오. ● 명확성이 간결성보다 더욱 중요합니다(Clarity is more imp..
LCS LCS란 보통 최장 공통 부분수열(Longest Common Subsequence)을 의미하지만, 최장 공통 문자열(Longest Common Substring)을 말하기도 합니다. 여기에서 부분수열(Subsequence)과 문자열(Substring)의 차이는 문자열이 연속적인지 아닌지에 따라 달라지는데요, 연속적이라면 문자열(Substring)이고, 비연속적이면 부분수열(Subsequence)입니다. 다음과 같은 예시가 있다고 가정해봅시다. [AUTABBEHNSAAB, BCUAMEFKAJNAAB] 위 예시에서 AAB는 연속적이기 때문에 문자열이라고 할 수 있고, UAENAAB는 비연속적이기 때문에 부분 수열이라고 할 수 있습니다. 위에서 말한 두 가지의 LCS를 구현하는 방법에 대해 알아보겠습니..
· iOS/SwiftUI
ViewModifier A modifier that you apply to a view or another view modifier, producing a different version of the original value. protocol ViewModifier Overview ViewModifier 프로토콜은 어떠한 뷰에서도 적용할 수 있는 재사용 가능한 modifier를 생성하는 것입니다. 예를 들어 SwiftUI를 통해 View를 만들 때, 글자 크기나 폰트 등이 공통적인 특성을 가지는 경우가 있습니다. 이러한 경우에 코드를 작성할 때 각각의 특성을 모두 작성하게 된다면, 코드의 가독성이 떨어지고 비효율적이게 됩니다. 따라서 이러한 공통적인 특성을 묶어서 관리하고 원할 때마다 해당하는 공통적인..
· 기타
지원 동기 지원 동기는 우선 예전부터 애플 제품을 좋아하고, 애플이라는 브랜드에 되게 관심이 많았는데, 애플에서 주관하는 프로그램이 있다고 하여 떨어져도 경험삼아 지원해보자는 마인드로 지원을 하게 되었습니다. 2022년 기준으로는 서류 마감일이 11월 30일이었나? 그래서 학기 중에 병행하기에 좀 힘들었는데, 그래도 틈 날 때마다 조금씩 적어서 제출하였습니다. 2023년도에는 Batch1과 Batch2로 나누어서 지원자를 모집한다고 하였습니다. 이 글을 보시는 분들은 Batch2를 준비하시는 분들이실 것 같습니다. 1차 전형 1차는 서류 전형이었는데, 자기소개(최대 250단어), cv파일, 포트폴리오를 제출하는 것이었습니다. 근데 자기소개가 250자가 아닌 250단어였습니다,,, 저는 250자로 이해하고..
Dev_Ted
프로그래밍 성장기