개발 67

[Git] Github Gist (깃허브 기스트)

깃허브에 코드를 업로드하고 공유하기 좋은 기능이 있어서 써보려 합니다. Github Gist : https://gist.github.com/ 깃허브 계정이 있으면 해당 계정으로 로그인할 수 있습니다. 먼저 Github Gist에 들어가면 다음과 같은 화면에서 코드를 추가할 수가 있습니다. 코드를 업로드하기 위해 Gist description, Filename, Code 에 각 예시를 쓰고 create secret gist를 누르면 다음 화면이 나옵니다. - Create에는 Secret과 Public이 있는데 Secret은 URL이 있으면 누구나 코드를 확인할 수 있습니다. (개인적으론 Secret을 이용해 다른 사람들과 코드 공유를 많이 할 것 같습니다.) 해당 코드에 코멘트를 달 수가 있어 공유와 의견..

개발/Git 2022.07.15

[Swift] 프로그래머스 Lv2 문자열 압축

같은 2단계여도 확실히 Kakao 문제가 난이도가 있는 느낌입니다. 문자열을 다루는데 도움이 될 듯한 문제여서 따로 포스팅합니다. import Foundation func solution(_ s:String) -> Int { var result:Int = s.count // 가장 짧은 길이 저장 if result == 1 {return 1} for i in 1...s.count/2 { var temp:String = "" // 임시 메모리 var diviedNumber:Int = s.count/i // 문자 길이를 나눈 몫 -> 분할 덩어리 var remainNumver:Int = s.count%i // 남은 길이를 붙여줄 문자 길이 var duplicateCount = 1 // 문자열 압축 횟수 for..

개발/PS 2022.06.20

[Swift] 프로그래머스 1단계 모음

IDE없이 코딩테스트 연습을 하는데 지금까지 올린것을 제외한 나머지 Lv1을 한번에 정리하려 합니다. (여유있을때 분리하면서 설명하는걸로!) 목록은 다음과 같습니다. 참고로 모두 제가 짠 코드임으로 더 좋은 방법은 많을 수 있음! Lv1_2016년.swift Lv1_3진법 뒤집기.swift Lv1_x만큼 간격이 있는 n개의 숫자.swift Lv1_두 정수 사이의 합.swift Lv1_제일 작은 수 제거하기.swift Lv1_두 개 뽑아서 더하기.swift Lv1_소수 찾기.swift Lv1_시저 암호.swift Lv1_정수 제곱근 판별.swift Lv1_평균 구하기swift Lv1_정수 내림차순으로 배치하기.swift Lv1_문자열 p와 y의 개수.swift Lv1_문자열 내 마음대로 정리하기.swift..

개발/PS 2022.06.06

[Swift] 프로그래머스 Lv2 주차 요금 계산

요즘 스위프트 자체에 조금 더 익숙해질 필요가 있다고 느껴 "꼼꼼한 재은 씨의 Swift"를 읽고 있는데 좋은 책인 것 같습니다. 개정판이 나온다면 바로 살 생각... 아무튼 같은 맥락으로 알고리즘을 스위프트로 조금씩 풀어보려 노력중입니다.. 서론은 이쯤 하고.. 제가 작성한 코드는 다음과 같습니다. import Foundation var parkingTime: [String: Int] = [:] var indic: [String:Int] = [:] func solution(_ fees:[Int], _ records:[String]) -> [Int] { let outTime = 23*60 + 59 for record in records { let split:[Substring] = record.split..

개발/PS 2022.04.02

[Swift] 프로그래머스 Lv1 다트게임

아직 스위프트로 알고리즘은 익숙하지 않아서인지.. 문제를 푸는데 헤맵니다.. import Foundation func solution(_ dartResult:String) -> Int { let bonus: [Character:Int] = ["S":1, "D":2, "T":3] // 제곱 보너스 var result: Int = 0 var number: String = "" // 10도 고려해야 함으로(사실 두자리는 10 밖에 없어서 다른 방법도 괜찮을듯 합니다.) var data: [Int] = [0,0,0] // 다트 3개 점수 배열 var index: Int = -1 // 3번의 값 저장 for dart in dartResult{ if dart == "*" { // * if index >= 1 { d..

개발/PS 2022.03.29

[Swift] 프로그래머스 Lv2 순위검색

2단계 문제인데 생각보다 시간이 안나와서 결국 정확성 테스트만 맞춘 문제입니다.. 약간 무식하게 문제 그대로 짰는데 시간이 정말 길게 나옵니다.. 그래도 배열을 다루는 여러 메서드를 알게 된 문제였습니다. 정확성 테스트 O, 효율성 테스트 X import Foundation func solution(_ info:[String], _ query:[String]) -> [Int] { var result: [Int] = Array(repeating: 0, count: query.count) var count: Int = 0 for q in query { var checkElements: [String] = q.components(separatedBy: " ") for i in 0..= conditionScor..

개발/PS 2022.03.28

[Swift] 프로그래머스 LV1 비밀지도

String을 index로 접근하는 방법을 배울 수 있는 예제였습니다. 그건 그렇고 풀고나서 다른 사람들 풀이를 보니 정말 대단한 사람이 많습니다.. import Foundation func solution(_ n:Int, _ arr1:[Int], _ arr2:[Int]) -> [String] { var map1: [String] = [] var map2: [String] = [] map1 = decode(n, arr1) map2 = decode(n, arr2) return integrateMaps(map1, map2) } func decode(_ n:Int,_ arr:[Int]) -> [String]{ // 2진수로 만들기 -> 풀고 알았는데 radix를 쓰면 엄청 쉽다.. var tempMap:[St..

개발/PS 2022.03.12

[Swift] 프로그래머스 Lv1 모의고사

스위프트로 푼 첫 문제입니다. 여기서 알게된 중요한 사실은 스위프트의 Dictionary는 순서를 보장하지 않는다는 것입니다. 따라서 Dictionary의 순서가 필요하다면 정렬해서 사용해야 합니다. import Foundation func solution(_ answers:[Int]) -> [Int] { let first: [Int] = [1,2,3,4,5] let second: [Int] = [2,1,2,3,2,4,2,5] let third: [Int] = [3,3,1,1,2,2,4,4,5,5] var right: [Int: Int] = [1: 0, 2: 0, 3: 0] var rank: [Int] = [] print(right) for i in 0.. i && first[i] == answers[i..

개발/PS 2022.02.19

[Python] 프로그래머스 Lv1 신고 결과 받기

풀이 def solution(id_list, report, k): declare = {} # 신고당한 사람 : 신고한 사람 declared = [] # 유저 순서대로 신고 당한 수 answer = {} for i in id_list: # 유저 수 만큼 배열 생성 declare[i] = [] answer[i] = 0 // 초기 신고 값은 (이름: 0) for i in report: a, b = i.split(" ") # 신고하는 사람과 당한 사람을 나눔 if a not in declare[b]: # 중복 신고 체크 declare[b].append(a) # 중복이 아니라면 추가 for i in declare.values(): # 각 유저별 신고 당한 수 저장 declared.append(len(i)) for..

개발/PS 2022.01.23

[Python] for 문에서 List 인덱스와 값 동시에 사용

for 문을 배열의 수 만큼 돌리고 해당 인덱스로 배열에 접근하는 방법도 가능하지만 enumerate를 이용하는 방법이 있습니다. 1. 배열의 수 만큼 돌려서 접근하기 exList = ["a", "b", "c", "d", "e", "f", "g"] for index in range(0, len(exList)): print(index, exList[index]) 2. enumerate 사용하기 exList = ["a", "b", "c", "d", "e", "f", "g"] for index, value in enumerate(exList): print(index, value) 물론 1번의 방법을 사용해도 괜찮지만 enumerate를 통해 좀 더 간단한 코드를 만들수 있습니다.

개발/기타 2022.01.23