분류 전체보기(228)
-
[알고리즘] Swift -백준 #4153 (직각삼각형)
문제링크 https://www.acmicpc.net/problem/4153 4153번: 직각삼각형 입력은 여러개의 테스트케이스로 주어지며 마지막줄에는 0 0 0이 입력된다. 각 테스트케이스는 모두 30,000보다 작은 양의 정수로 주어지며, 각 입력은 변의 길이를 의미한다. www.acmicpc.net 문제 과거 이집트인들은 각 변들의 길이가 3, 4, 5인 삼각형이 직각 삼각형인것을 알아냈다. 주어진 세변의 길이로 삼각형이 직각인지 아닌지 구분하시오. 입력 입력은 여러개의 테스트케이스로 주어지며 마지막줄에는 0 0 0이 입력된다. 각 테스트케이스는 모두 30,000보다 작은 양의 정수로 주어지며, 각 입력은 변의 길이를 의미한다. 출력 각 입력에 대해 직각 삼각형이 맞다면 "right", 아니라면 "w..
2022.08.09 -
[알고리즘] Swift -백준 #2444 (별 찍기 -7)
문제링크 https://www.acmicpc.net/problem/2444 2444번: 별 찍기 - 7 첫째 줄부터 2×N-1번째 줄까지 차례대로 별을 출력한다. www.acmicpc.net 문제 예제를 보고 규칙을 유추한 뒤에 별을 찍어 보세요. 입력 첫째 줄에 N(1 ≤ N ≤ 100)이 주어진다. 출력 첫째 줄부터 2×N-1번째 줄까지 차례대로 별을 출력한다. 풀이 var input = Int(readLine()!)! for i in 1...input { for _ in stride(from: i, to: input, by: 1) { print(" ", terminator: "") } for _ in 1...2*i-1 { print("*", terminator: "") } print("") } fo..
2022.08.09 -
[알고리즘 기초] 시간복잡도
알고리즘의 시간복잡도 입력의 크기가 커질때 시간이 어떤 속도로 증가하는 지 나타냄 시간 복잡도는 O()으로 표기 1) 규칙 입력의 크기 : n ex: 입력이 정수 배열일 때 n은 배열의 크기를 나타낸다 / 입력이 문자열일 때 n은 문자열의 길이를 나타낸다 O(1) 코드가 단일 명령어로만 구성되어 있을 때 (ex: a += 1) O(n) 반복문 안의 내용이 n번 수행될 때 for i in 0...count { //...... } O(n2) 이중반복문 for i in 0...count { for j in 0...count { //..... } } TIP ! 코드에서 시간복잡도가 다양하게 구성되어 있을 때는 가장 큰 것이 적용된다. 어차피 가장 느린 것이 있으면 느리기 때문이다. TIP ! sort() = ..
2022.08.09 -
[알고리즘] Swift -백준 #2439 (별 찍기-2)
문제링크 https://www.acmicpc.net/problem/2439 2439번: 별 찍기 - 2 첫째 줄에는 별 1개, 둘째 줄에는 별 2개, N번째 줄에는 별 N개를 찍는 문제 하지만, 오른쪽을 기준으로 정렬한 별(예제 참고)을 출력하시오. www.acmicpc.net 문제 첫째 줄에는 별 1개, 둘째 줄에는 별 2개, N번째 줄에는 별 N개를 찍는 문제 하지만, 오른쪽을 기준으로 정렬한 별(예제 참고)을 출력하시오. 입력 첫째 줄에 N(1 ≤ N ≤ 100)이 주어진다. 출력 첫째 줄부터 N번째 줄까지 차례대로 별을 출력한다. 풀이 var input = Int(readLine()!)! for i in 1...input { if i != input{ for _ in 1...(input-i) { ..
2022.08.08 -
[알고리즘] Swift -백준 #2438 (별 찍기 -1)
문제링크 https://www.acmicpc.net/problem/2438 2438번: 별 찍기 - 1 첫째 줄에는 별 1개, 둘째 줄에는 별 2개, N번째 줄에는 별 N개를 찍는 문제 www.acmicpc.net 문제 첫째 줄에는 별 1개, 둘째 줄에는 별 2개, N번째 줄에는 별 N개를 찍는 문제 입력 첫째 줄에 N(1 ≤ N ≤ 100)이 주어진다. 출력 첫째 줄부터 N번째 줄까지 차례대로 별을 출력한다. 풀이 for i in 0..
2022.08.08 -
[알고리즘] Swift -백준 #2884 (알람 시계)
문제링크 https://www.acmicpc.net/problem/2884 2884번: 알람 시계 상근이는 매일 아침 알람을 듣고 일어난다. 알람을 듣고 바로 일어나면 다행이겠지만, 항상 조금만 더 자려는 마음 때문에 매일 학교를 지각하고 있다. 상근이는 모든 방법을 동원해보았지만, www.acmicpc.net 문제 상근이는 매일 아침 알람을 듣고 일어난다. 알람을 듣고 바로 일어나면 다행이겠지만, 항상 조금만 더 자려는 마음 때문에 매일 학교를 지각하고 있다. 상근이는 모든 방법을 동원해보았지만, 조금만 더 자려는 마음은 그 어떤 것도 없앨 수가 없었다. 이런 상근이를 불쌍하게 보던, 창영이는 자신이 사용하는 방법을 추천해 주었다. 바로 "45분 일찍 알람 설정하기"이다. 이 방법은 단순하다. 원래 설..
2022.08.08 -
[알고리즘] Swift -백준 #1712 (손익분기점)
문제링크 https://www.acmicpc.net/problem/1712 1712번: 손익분기점 월드전자는 노트북을 제조하고 판매하는 회사이다. 노트북 판매 대수에 상관없이 매년 임대료, 재산세, 보험료, 급여 등 A만원의 고정 비용이 들며, 한 대의 노트북을 생산하는 데에는 재료비와 www.acmicpc.net 문제 월드전자는 노트북을 제조하고 판매하는 회사이다. 노트북 판매 대수에 상관없이 매년 임대료, 재산세, 보험료, 급여 등 A만원의 고정 비용이 들며, 한 대의 노트북을 생산하는 데에는 재료비와 인건비 등 총 B만원의 가변 비용이 든다고 한다. 예를 들어 A=1,000, B=70이라고 하자. 이 경우 노트북을 한 대 생산하는 데는 총 1,070만원이 들며, 열 대 생산하는 데는 총 1,700만..
2022.08.08 -
[Python] 아스키코드 변경
ord() 아스키코드로 변환해주는 함수 A = input() print(ord(A)) 파이썬 칭찬해
2022.08.08 -
[Python] 사칙연산
더하기 / 빼기 / 곱하기 / 나누기 / 몫구하기 / 나머지구하기 A, B = map(int, input().split()) print(A+B) print(A-B) print(A*B) print(A//B) print(A%B) 나누기는 소수점까지 쭉 계속 다 나옴
2022.08.08 -
[UIKit] 로컬푸시 알림구현
https://beenii.tistory.com/182 Local Notification (로컬 푸시) 구현하기 대부분 앱을 사용하시다보면 푸시알림을 무수히 받아보셨을거예요. 저도 잠시 계약한 스타트업에서 진행하고 있는 프로젝트에서도 Push 알림을 구현해야한다고 하셔서 푸시알림에 대해 알아보 beenii.tistory.com https://inuplace.tistory.com/1243
2022.08.07 -
[UIKit] 컬렉션뷰 왼쪽정렬
아주 간단 https://eunjin3786.tistory.com/401 [iOS] Single CollectionViewCell을 왼쪽 정렬(left align) 하기 # 이슈 collectionview 안에 cell이 두개 이상이면 왼쪽 정렬이 된다. 하지만 cell이 하나 일 때만 센터 정렬이 된다. # 해결 collectionView의 estimate size를 automatic -> none 으로 바꾸면 single cell 일.. eunjin3786.tistory.com
2022.08.07 -
[UIKit] 스크롤뷰/테이블뷰 제일 밑으로 이동
테이블뷰 데이터 불러오기 -> 테이블에 데이터 추가 -> 테이블뷰 리로드 -> 제일 밑으로 이동 self.chatResult += chatresult self.chatTableView.reloadData() self.scrollToBottom() func scrollToBottom(){ DispatchQueue.main.async { if self.chatResult.count > 0 { let ip = IndexPath(row: self.chatResult.count-1, section: 0) self.chatTableView.scrollToRow(at: ip, at: .bottom, animated: true) } } refreshControl.endRefreshing() } 꼭 비동기로 진행해줘야함..
2022.08.06 -
[UIKit] 텍스트필드 입력(클릭) 시 키보드 올리기/내리기
🧸 시작 텍스트필드를 사용할 때 키보드가 위로 올라왔다가 내려갔다가 한다. 키보드가 올라가면서 화면을 가리게 되는 데 입력하는 텍스트필드가 가려질 때가 있다. 그러면 화면에 있는 컴포넌트들도 위로 올라가야한다. 이를 해결하기 위한 방법이다. 적용 전 적용 후 🧸 키보드 옵저버를 생성한다. func keyboardObserver() { NotificationCenter.default.addObserver(self, selector: #selector(keyboardWhillShow), name: UIResponder.keyboardWillShowNotification, object: nil) NotificationCenter.default.addObserver(self, selector: #selector..
2022.08.06 -
[UIKit] "keyWindow' was deprecated in iOS 13.0 : Should not be used for applications that support multiple scenes as it returns a key window across all connected scenes" error 에러 해결
let keyboardHeight = keyboardFrame.cgRectValue.height let scenes = UIApplication.shared.connectedScenes let windowScene = scenes.first as? UIWindowScene let window = windowScene?.windows.first if self.viewCommentConstraint.constant == 0{ self.viewCommentConstraint.constant += (keyboardHeight-(window?.safeAreaInsets.bottom ?? 0)) } [키보드 전체코드] https://nlestory.tistory.com/112 [iOS/Swift] 텍스트필드 입력(..
2022.08.06 -
[UIKit] 위에서 올라오는 바텀시트(모달창) 만들기 (FloatingPanel 라이브러리)
라이브러리 사용하였다 정보가 너무 없어서 구현하는 데 너무 힘들었다 라이브러리 주소 https://github.com/scenee/FloatingPanel#change-the-backdrop-alpha GitHub - scenee/FloatingPanel: A clean and easy-to-use floating panel UI component for iOS A clean and easy-to-use floating panel UI component for iOS - GitHub - scenee/FloatingPanel: A clean and easy-to-use floating panel UI component for iOS github.com 일단 뷰컨으로 바텀시트를 하나 만든다 뷰사이를 전체로 ..
2022.08.06 -
[UIKit] 테이블뷰 셀안에 있는 버튼 클릭 이벤트 처리하기 -델리게이트 패턴
[델리게이트패턴 사용하기] 더보기 https://nlestory.tistory.com/155 [Design Pattern] 디자인패턴 -델리게이트 패턴 (Delegate Pattern) 👉 Delegate 란? 사전적의미는 '위임하다'라는 뜻이다. 즉 위임자를 갖고 객체가 다른 객체에게 자신의 일을 위임하는 형태 👉 이벤트를 전달하는 방식 만약에 A뷰컨트롤러에서 B뷰컨트롤러로 이 nlestory.tistory.com 테이블뷰셀에서 일단 누르고 싶은 버튼에 클릭이벤트 생성하기 @IBAction func btnMoreAction(_ sender: Any) { } 그리고 테이블뷰에 프로토콜 생성 protocol BtnMoreDelegate { func btnMoreAction(index: Int) } 자신이 ..
2022.08.06 -
[UIKit] 네비게이션바 뒤로가기 아이템 설정 변경
let backBarButtonItem = UIBarButtonItem(title: "", style: .plain, target: self, action: nil) backBarButtonItem.tintColor = .darkGray self.navigationItem.backBarButtonItem = backBarButtonItem 해당코드를 넘어갈 뷰컨에다 해주는것이 아니라 넘기기전에 해줘야함
2022.08.05 -
[UIKit] 루트뷰 변경하기, 상황에 따라 초기화면 변경하기
https://blog.naver.com/PostView.nhn?blogId=psj9102&logNo=222094915075&categoryNo=73&parentCategoryNo=0&viewDate=¤tPage=1&postListTopCurrentPage=1&from=postView Swift : 첫화면(Root)을 어떤걸 보여줄까 ( Login 로직 ) * 독학 블로그 이므로 틀린 부분이 있을 수 있습니다. 서로의 정보를 댓글로 공유해주세요. 이 포스팅은 아... blog.naver.com
2022.08.04 -
[UIKit] Firebase 연동하여 회원가입하기
기본적인 파이어베이스 세팅 https://sujinnaljin.medium.com/ios-firebase-%ED%8C%8C%EC%9D%B4%EC%96%B4%EB%B2%A0%EC%9D%B4%EC%8A%A4-%EC%97%B0%EB%8F%99-56bcc972ec8f [iOS] Firebase 연동 iOS 파이어베이스 연동을 통해 Analytics, FCM 등을 사용해보자 sujinnaljin.medium.com 여기에서 쭈꾸쭈쭈꾸쭈꾺~ 설정 나는 회원가입/로그인을 사용할 거라 #파이어베이스 pod 'Firebase' pod 'FirebaseAuth' pod 'FirebaseStorage' 이렇게 추가해주었다 구글서비스인포 등록! 앱델리게이트도 설정 완료! 이제 회원가입할 뷰로 가서 이메일과 비밀번호만 받아서 ..
2022.08.03 -
[스터디] Python -순열(permutations), 조합(combinations)
순열(permutations) n개 중에서 r개를 고르는 것 (중복O) from itertools import permutations v = [0, 1, 2, 3] for combi in permutations(v, 2): print(combi) 조합(combinations) n개 중에서 순서에 상관없이 r개를 고르는 것 (중복X) from itertools import combinations v = [0, 1, 2, 3] for combi in combinations(v, 2): print(combi)
2022.08.03