일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- 시간복잡도
- 암호수학
- windosws wbcs
- web
- System
- LoB
- SWiFT
- windosw 문자열
- 미로 탐색 알고리즘
- HTML
- War Game
- 파일 시스템
- c언어
- ftz level13
- 스택
- ftz
- C
- 큐
- 자료구조
- PHP
- OSI
- Java
- 두근두근 자료구조
- Stack
- 정렬 알고리즘
- 백준
- pwnable.kr
- level13
- 파이썬
- 재귀
- Today
- Total
목록모두 보기 (255)
나의 기록, 현진록
코딩테스트 연습 - 신고 결과 받기 문제 설명 신입사원 무지는 게시판 불량 이용자를 신고하고 처리 결과를 메일로 발송하는 시스템을 개발하려 합니다. 무지가 개발하려는 시스템은 다음과 같습니다. 각 유저는 한 번에 한 명의 programmers.co.kr 오랜만에 해서 감이 많이 떨어진 것 같다... 처음에 성공했을 때는 코드가 가독도 힘들도 지저분한 느낌이 들었다. 다른 사람들의 풀이를 보고 딕셔너리를 충분히 이용하여 코드 수를 줄이고 가독성을 늘릴 수 있었다. import Foundation func solution(_ id_list:[String], _ report:[String], _ k:Int) -> [Int] { var reportedNameCount = [String : Int]() // id..
위 영상처럼 화면을 눌렀을 때마다 탭 바가 내려가고 올라가는 동작이 필요한 경우가 있다. 탭 바를 어떻게 움직일 수 있을까? [탭 바 숨기기] self.tabBarController?.tabBar.frame.origin = CGPoint(x: 0, y: UIScreen.main.bounds.maxY) UIScreen은 디바이스의 해상도이다. tabbar를 숨기려면 디바이스 화면의 Y축의 최댓값으로 tabbar의 좌표를 설정해주면 된다. [탭 바 나타내기] let heigh = self.tabBarController?.tabBar.frame.height ?? 0 self.tabBarController?.tabBar.frame.origin = CGPoint(x: 0, y: UIScreen.main.bound..
앱에서 또 다른 앱을 호출할 경우에 사용하는 방법이다. 작성자가 앱을 만들면서 작성한 코드이다. let url = "kakaomap://route?sp=\(currentPoint.latitude),\(currentPoint.longitude)&ep=\(item.map.latitude),\(item.map.longitude)&by=FOOT" if let openKakaoMap = URL(string: url), UIApplication.shared.canOpenURL(openKakaoMap){ if #available(iOS 10.0, *){ UIApplication.shared.open(openKakaoMap, options: [:], completionHandler: nil) }else{ UIAppli..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/Ti0FM/btrESYoTmlE/fwUfeMkajN2HfV4kAhU5e0/img.png)
지도 화면 영역 내의 좌표를 구하고자 하였으나, 카카오에서 제공하는 Kakao 지도 iOS API 문서에 찾아도 안 나와서 헤더파일을 뒤져가며 찾았다. [MTMapView.h] MTMapView 아래 내가 찾던 mapBounds가 있다. 좌하단의 좌표(x1, y1)와 우상단의 좌표(x2, y2)를 구할 수 있다. 다음은 mapBounds를 활용하여 작성한 코드이다. func initMapPoint(){ // 벡엔드에서 받아와서 마커 표시 if let bounds = self.mtMapView.mapBounds{ let bottomLeftPoint = bounds.bottomLeft.mapPointGeo() let topRightPoint = bounds.topRight.mapPointGeo() let i..
코딩테스트 연습 - 괄호 변환 카카오에 신입 개발자로 입사한 "콘"은 선배 개발자로부터 개발역량 강화를 위해 다른 개발자가 작성한 소스 코드를 분석하여 문제점을 발견하고 수정하라는 업무 과제를 받았습니다. 소스를 programmers.co.kr 문제풀이 정신차리고 문제만 제대로 보고 그대로 코딩하면 된다. 문제 보고 그대로 코딩해라..... 출력 결과는 제대로 나오나 제출 시 통과하지 못하였는데 문제가 되는 부분은 다음과 같다. return "("+recursion(v)+")"+u.joined() 위와 같이 해야 하는데 return "("+u.joined()+")"+recursion(v) 이처럼 하였다. 출력 결과는 문제 없는 것 같은데 결과적으로 문제를 제대로 보고 그대로 코딩하면 된다... 만약 문제..
코딩테스트 연습 - 짝지어 제거하기 짝지어 제거하기는, 알파벳 소문자로 이루어진 문자열을 가지고 시작합니다. 먼저 문자열에서 같은 알파벳이 2개 붙어 있는 짝을 찾습니다. 그다음, 그 둘을 제거한 뒤, 앞뒤로 문자열을 이어 붙 programmers.co.kr 문제풀이 스택을 이용하면 O(n)으로 해결 할 수 있다. 정확성과 효율성이 나뉘는 문제인데 정확성은 해결됐지만 효율성은 여러 시도가 있었다. 문자열을 배열 형태로 바꿔주는 방식도 map을 이용하면 시간초과가 난다. Array(s)를 이용하니 효율성도 해결되었다. 코드 import Foundation func solution(_ s:String) -> Int{ let sArr = Array(s) var stack = [Character]() for i..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/oFh2q/btrCH4ZxRQe/wppHI3g9hWdS7pfVQxv1R0/img.png)
네이버 지도에서 주변 탭 클릭 시 하단에서 뷰가 올라오는 바텀 시트를 구현해보자. HeaderMap 스토리보드에서 버튼을 누르면 MapListView 스토리보드가 하단에서 올라와야 한다. 내가 개발 중인 앱이다. 잘 보이지 않지만(UI 수정해야함...) 왼쪽 하단 쪽에 버튼을 누르면 바텀시트가 올라오게 해보자 아래의 코드는 MapViewController에서 작성되었다. @IBAction func showMapList(_ sender: Any) { let storyboard = UIStoryboard(name: "MapListView", bundle: Bundle.main) let bottomSheetVC = storyboard.instantiateViewController(identifier: "Map..
코딩테스트 연습 - 행렬 테두리 회전하기 6 6 [[2,2,5,4],[3,3,6,6],[5,1,6,3]] [8, 10, 25] 3 3 [[1,1,2,2],[1,2,2,3],[2,1,3,2],[2,2,3,3]] [1, 1, 5, 3] programmers.co.kr 문제풀이 행렬 문제로 2차원 배열의 인덱스를 잘 고려하며 해결해야한다. 딱히 문제 풀이라고 할 것이 없고, 대신 고려할 점이 몇 가지 있다. 내가 문제를 풀면서 문제를 해결한 방법이다. 1. row [Int] { var map = Array(repeating: Array(repeating: 0, count: columns+1), count: rows+1) var result = [Int]() for i in 1...rows{ for j in 1..
코딩테스트 연습 - 멀쩡한 사각형 가로 길이가 Wcm, 세로 길이가 Hcm인 직사각형 종이가 있습니다. 종이에는 가로, 세로 방향과 평행하게 격자 형태로 선이 그어져 있으며, 모든 격자칸은 1cm x 1cm 크기입니다. 이 종이를 격자 선을 programmers.co.kr 문제풀이 빗선을 지나는 사각형의 갯수를 구하는 공식을 사용하는 문제다. 빗선을 지나는 사각형의 갯수 = 가로 + 세로 - 최대공약수(가로, 세로) 정답은 (가로 * 세로) - (가로 + 세로 - 최대공약수)로 구할 수 있다. 코드 import Foundation func gcd(up: Int, down: Int) -> Int{ var up = up var down = down while down != 0{ let r = up % dow..
코딩테스트 연습 - 오픈채팅방 오픈채팅방 카카오톡 오픈채팅방에서는 친구가 아닌 사람들과 대화를 할 수 있는데, 본래 닉네임이 아닌 가상의 닉네임을 사용하여 채팅방에 들어갈 수 있다. 신입사원인 김크루는 카카오톡 오 programmers.co.kr 문제풀이 command는 Enter, Leave, Change 세 가지를 의미한다. 1. command와 Id를 sequence 배열에 저장하며 동시에 Id와 nickName을 딕셔너리로 저장 2. 1번 과정이 끝나면 sequence에 command와 Id에 해당하는 딕셔너리 값을 조합하여 배열에 저장한다. 코드 import Foundation func solution(_ record:[String]) -> [String] { var sequence = [[St..