전체 글 158

[MySQL] SQL 코딩테스트 준비(feat. 프로그래머스 SQL 고득점 Kit)

✅ max(컬럼), min(컬럼) : 지정한 컬럼의 값 중 최대값/최소값 출력 https://school.programmers.co.kr/learn/courses/30/lessons/131697 SELECT MAX(PRICE) FROM product; - 정수 뿐만 아니라 문자열도 비교하여 문자열 기준 최대값, 최소값을 구할 수 있음 https://school.programmers.co.kr/learn/courses/30/lessons/59415 SELECT max(datetime) from animal_ins ✅ 집계함수 count(*) : 조건을 만족하는 모든 행의 갯수 반환 (null 포함) https://school.programmers.co.kr/learn/courses/30/lessons/59..

[Swift] 백준 21921 - 블로그

문제 https://www.acmicpc.net/problem/21921 21921번: 블로그 첫째 줄에 $X$일 동안 가장 많이 들어온 방문자 수를 출력한다. 만약 최대 방문자 수가 0명이라면 SAD를 출력한다. 만약 최대 방문자 수가 0명이 아닌 경우 둘째 줄에 기간이 몇 개 있는지 출력한다 www.acmicpc.net 시간초과 풀이 1 (투포인터 사용) 더보기 import Foundation let input = readLine()!.split(separator:" ").map { Int(String($0))! } let n = input[0], x = input[1] let arr = readLine()!.split(separator:" ").map { Int(String($0))! } var s..

[Swift] 백준 DP 문제 풀이 (2839, 1463, 1003, 11726, 9465, 1890, 12865, 15486)

🥺 DP가 너무 약한자의 DP 조지기 https://github.com/tony9402/baekjoon/tree/main/dynamic_programming_1 https://github.com/tony9402/baekjoon/tree/main/dynamic_programming_2 해당 링크의 문제들을 도장깨기 하듯? 풀었고 풀이는 주석으로 달아두었습니다. 2839 https://www.acmicpc.net/problem/2839 내 풀이 import Foundation let n = Int(readLine()!)! var dp = Array(repeating: 0, count:5001) for i in 3...n { if i%3 == 0 { dp[i] = dp[i-3] + 1 // 3으로 나누어떨어질..

[iOS/Swift] 앱을 백그라운드에서 다시 돌아오면 캘린더에서 이전 날짜가 오늘 날짜로 표시되는 현상 (생명주기)

Issue - 3월 20일에 위 타이틀 23.03.19로 표시 되는 현상 + 홈 달력에서 19일이 오늘 날짜로 표시하는 파란색 원으로 표시되는 현상이 제보되었음. - 앱을 종료하지 않고 백그라운드 상태로 두었다가 다시 진입했을 때 나타나는 현상인 것으로 보아 생명주기 관련 이슈인것으로 확인되어서, 뷰 컨트롤러/앱 생명주기 개념을 다시 되짚어보면서 원인을 찾아보기로 했다. - 덕분에 이 포스트도 보완하면서 다시 뷰 컨트롤러 + 앱 생명주기에 대해 이해해보는 계기가 되었다. Problem - 날짜와 캘린더를 viewDidLoad에서 세팅하게 되면서, 앱이 백그라운드에 있다가 다시 돌아올 때에는 viewDidLoad가 이미 실행되어있고 그 이후에 초기화하는 코드가 실행되지 않으므로 이전 데이터로 남아있었음이 ..

[iOS/Swift] 키보드로 인해 채팅창(UITableView)이 가려지는 불편함 해결

🚨 Issue 돌보고 있던 사이드 프로젝트에서 키보드로 인해 특정 영역이 보이지 않아 불편한 점이 보여서 이를 해결해보고싶었다. 아래 내용이 보이지가 않는다 🥲 사용자 입장에서 매우 불편. 💡 Idea 다른분들은 어떻게 해결했는지 레퍼런스를 찾아봤다. 보통 키보드가 등장할 때 뷰의 y 좌표를 위로 조정하고, 사라질 때 다시 아래로 내리는 방식으로 하는것같았다. 이 방식은 원래 텍스트뷰를 위로 올릴 때 사용하던 방식이기는 했는데, 아래 내용까지 보일 수 있도록 다시 적용해보기로 했다. ✅ 채팅 테이블뷰 아래 내용까지 보일 수 있도록 테이블뷰가 위쪽으로 스크롤 되도록 해결 과정 1) 처음 테이블뷰도 마찬가지로 frame의 y를 뺐다가 더하는 쪽으로 했는데 아래와 같이 처참한 결과 발생.. override f..

[iOS/Swift] Notification Center

노티피케이션 센터 https://developer.apple.com/documentation/foundation/notificationcenter NotificationCenter | Apple Developer Documentation A notification dispatch mechanism that enables the broadcast of information to registered observers. developer.apple.com 노티피케이션 센터란, 등록된 관찰자에게 알려줄 수 있도록 하는 알림 메커니즘이다. 각 실행하고 있는 앱은 모두 기본적으로 노티피케이션 센터를 가지고으므로 해당 클래스를 이용하면 된다. 언제 활용하는가? 앱 내에서 공식적인 연결이 없는 2개 이상의 컴포넌트 간..

[Swift] 백준 16234 - 인구 이동

문제 https://www.acmicpc.net/problem/16234 16234번: 인구 이동 N×N크기의 땅이 있고, 땅은 1×1개의 칸으로 나누어져 있다. 각각의 땅에는 나라가 하나씩 존재하며, r행 c열에 있는 나라에는 A[r][c]명이 살고 있다. 인접한 나라 사이에는 국경선이 존재한다. 모 www.acmicpc.net 내 풀이 1. 틀잡기 import Foundation let input = readLine()!.split(separator:" ").map { Int(String($0))! } let n = input[0], l = input[1], r = input[2] var board:[[Int]] = [] var dx = [-1, 1, 0, 0] var dy = [0, 0, -1, 1..

[Swift] 백준 1713 - 후보 추천하기

문제 : https://www.acmicpc.net/problem/1713 1713번: 후보 추천하기 첫째 줄에는 사진틀의 개수 N이 주어진다. (1 ≤ N ≤ 20) 둘째 줄에는 전체 학생의 총 추천 횟수가 주어지고, 셋째 줄에는 추천받은 학생을 나타내는 번호가 빈 칸을 사이에 두고 추천받은 순서대 www.acmicpc.net 내 풀이 import Foundation let n = Int(readLine()!)! let m = Int(readLine()!)! //추천 횟수 let nums = readLine()!.split(separator:" ").map { Int(String($0))! } var stack:[Int] = [] //사진틀 (스택) var count:[Int] = Array(repea..

[알고리즘] 시간복잡도, 코딩테스트 알고리즘 요약 정리

문제를 보면 입력 데이터의 개수를 보고 시간복잡도부터 계산하자 (코테의 가장 기본) 1초 = 1억번 연산 임을 인지하고 이를 토대로 시간복잡도를 계산하여, 시간초과가 나지 않을 적절한 알고리즘을 선택해야함 보통 프로그래머스의 경우 명시를 해두지 않았다면 제한 시간이 10초 라고 한다. O(1): 입력 데이터의 개수와 상관없이 항상 상수의 시간을 가지는 알고리즘 (ex. 배열의 마지막 수 꺼내오기, 해시 테이블 삽입/삭제/검색) O(logn): 크기가 커지면 커질수록 처리 시간이 절반으로 줄어드는 알고리즘 (ex. 이분탐색, 힙(우선순위 큐)) O(n): 입력 데이터의 개수만큼 시간이 소요되는 알고리즘 (ex. for문 1개, 배열/문자열 탐색, 배열/문자열 재정렬, set()으로 중복 제거) O(nlog..

반응형