전체 글

전체 글

    [Python] 프로그래머스 고득점 Kit (정렬) : K번째 수

    문제 코딩테스트 연습 - K번째수 [ 문제 풀이 ] 문제에서 제시한 대로 array를 여러 commands 배열의 0번째 값 부터 1번째 값 까지 잘라낸 후 자른 배열 정렬 후 2번째 값 인덱스를 return 하면 되는 간단한 문제다. 다른 짧은 풀이도 봤는데, 한줄로도 풀 수 있는 문제였다. 나는 몇 줄에 걸쳐했지만,, 문법 공부하자... 코드

    [Swift] Optinoal이란? Wrapping/Unwrapping

    Optional 변수를 Optional 타입으로 사용하면 변수에 값이 있을 수도 없을 수도 있게 사용할 수 있다. 기본적으로 변수를 선언할 때 nil 값이 들어가면 안되는데 ? 를 붙이면 Optional로 선언되어 nil이여도 에러가 발생하지 않는다. 사용할 때는 타입뒤에 ? 를 붙이면 Optional type으로 선언된다. Optional 타입에 nil 값을 넣지 않아도 기본 값은 nil로 저장된다. Wrapping Optional 타입의 값은 기본적으로 wrap, 즉 싸여져있는 상태이다. 이 말은 Optional으로 선언된 값이 값이 있는건지 없는건지(nil) wrapping 되어 있어서 알 수 없는 상태이다. 그래서 Optional 타입으로 선언된 값을 그대로 프린트 하면 값 그대로 출력되는 것이 ..

    [알고리즘] dx, dy 좌표 상하좌우 탐색 로직

    탐색 알고리즘 문제를 처음 접하는 분들은 상하좌우 탐색할 때 (0, -1)인데 x, y좌표 그려서 생각해보면 아래쪽인 것 같은데 왜 왼쪽을 탐색하지? 라고 헷갈릴 수 있다. 필자도 처음에 이해가 안되었다. # 좌, 우, 상, 하 dx = [0,0,-1,1] dy = [-1,1,0,0] 필기를 하면서 직접 그려보니 이해가 쉬웠다. (1, 1)을 현재 위치라고 가정하고, 왼쪽으로 이동하면 값이 (1, 0)으로 y값이 -1 되어야 한다. 오른쪽으로 이동하면 (1, 2) 위치가 되므로 y 값을 +1 해주어야 오른쪽 이동이 된다. 상, 하 이동도 마찬가지이다. 코드만 봐서는 잘 이해가 안갔던 부분이, 직접 손으로 그려보니 이해가 빨랐다!

    [Python] 프로그래머스 고득점 Kit (해시) : 전화번호 목록

    문제 코딩테스트 연습 - 전화번호 목록 [ TIL ] 접두사를 찾을 때 str.startwith(접두사) : str에 해당 접두사가 포함되면 True를 리턴, 아니면 False를 리턴 str.startwith(접두사, end) : 선택적으로 end를 사용하면 해당위치에서 비교를 중단 정렬할 때 list.sort() : 원본 리스트를 변형시켜 정렬한다. sorted(list) : 정렬된 결과를 반환하여 새로운 리스트를 내보냄. 원본 리스트는 변하지 않는다. ✏️한줄평 : 파이썬 문법을 잘 모르니 계속 구글링 하는 한계가 발생한다. 파이썬 공부도 코테를 위해 꾸준히 해야겠다. 코드

    [Swift] Class(클래스)와 Struct(구조체) 차이 - 깊은복사와 얕은복사

    Swift를 접한지 몇 달이 지났지만, 그래도 클래스와 구조체의 차이점이 뭔지 잘 모르겠고 헷갈린다. 이번 기회에 강의를 들은 내용 바탕으로 정리해봤다. 클래스와 구조체의 차이뿐만 깊은복사와 얕은복사의 차이점도 제대로 짚고가게 되었다. Class 변수 선언시 값을 초기 값을 지정해줘야 함 // 생성자를 만들어서 이 클래스 사용시 매개변수 입력받게 class Enemy { var health: Int var attackStrength: Int init(health: Int, attackStrength: Int){ self.health = health self.attackStrength = attackStrength } func takeDamage(amount: Int){ health = health - a..

    [Python] 백준 15992번 : 1, 2, 3 더하기 7

    문제 15992번: 1, 2, 3 더하기 7 [ 문제 조건 ] 정수 n을 가지고 m개의 수를 사용해야 함. 즉, 4를 가지고 2개의 수를 사용한다면 (2+2), (1+3), (3+1) 총 3개의 경우의 수가 있을 것이다. [ 해결순서 ] dp 문제는 늘 전에 계산한 값들을 다시 이용해서 사용해야 하므로 고정된 범위의 1~3의 값을 미리 계산해서 dp 배열에 넣었다. 그리고, 첫번째 시도 풀이에서 메소드를 넣어 값을 구하려고 했는데 이렇게 하면 시간초과가 발생한다. ❗️ 여기서 중요하고 내가 간과한 사실을 알아냈는데, 메소드로 반복해서 값을 구하면서 dp 배열을 계산하면 테스트 케이스만큼 dp 배열의 값을 계산하게 된다. 한번 구해서 갱신한 dp 배열은 공유해서 사용하기 때문에 굳이 테스트 케이스마다 중복..

    [ Apple 트랙패드 ] 맥북이라면 마우스 대신 트랙패드 강추 👍🏻

    그렇다. 나는 앱등이다. (삼성을 응원하는) 그럴려고 한 건 아닌데 사다보니 애플 제품만 사게 되어버린... 이게 바로 애플의 생태계에 빠진 건가 무튼, 3개월 전 로지텍 페블마우스 짭을 쓰던 나는 공대생이라 코딩 실습 시험을 보는데 하필 하루 전날 고장이 나버렸다ㅠㅠ 그래서 급하게 쿠팡 로켓배송으로 시켰다. 가격은 좀 사악하지만 (149,000) 이왕 사는거 좋은거 오래쓰자는 나와 엄마의 신념으로 사주셨다. 제품 소개 제품명 : Apple Magic TrackPad 2 가격 : 149,000 구매 링크 : 하단 애플공홈 링크 쿠팡링크 아이폰 기본 어플인 "측정"으로 확인해보니 대충 가로 : 15cm 세로 : 11cm 이며, 휴대하기에도 괜찮은 크기이다. 무게도 꽤 가볍다! 그냥 실사이지만, 두께도 가볍..

    [Python] 카카오 2021 BLIND : 신규 아이디 추천

    문제 코딩테스트 연습 - 신규 아이디 추천 [ 문제 조건 ] 1단계 new_id의 모든 대문자를 대응되는 소문자로 치환합니다. 2단계 new_id에서 알파벳 소문자, 숫자, 빼기(-), 밑줄(_), 마침표(.)를 제외한 모든 문자를 제거합니다. 3단계 new_id에서 마침표(.)가 2번 이상 연속된 부분을 하나의 마침표(.)로 치환합니다. 4단계 new_id에서 마침표(.)가 처음이나 끝에 위치한다면 제거합니다. 5단계 new_id가 빈 문자열이라면, new_id에 "a"를 대입합니다. 6단계 new_id의 길이가 16자 이상이면, new_id의 첫 15개의 문자를 제외한 나머지 문자들을 모두 제거합니다. 만약 제거 후 마침표(.)가 new_id의 끝에 위치한다면 끝에 위치한 마침표(.) 문자를 제거합니..

    [Timer] 타이머 숫자(초단위)를 { 분 : 초 }로 변경하기 (String format)

    혼자 하고 있는 개인 프로젝트가 있는데, 타이머를 사용해야 해서 View 별로 넘겨받은 걸리는 초를 어떻게 10:00 이렇게 바꿀지 코드를 공유하겠다. 생각보다 간단하게 생각한대로 구현하면 된다. 일단 내 플젝의 경우 1시간이 넘어가는 타이머가 필요 없다. 그래서 time에 초를 입력받으면 필요한 분, 초만 계산해서 원하는 형식으로 변환하여 String 타입으로 리턴했다. //시간 계산 func timeString(time: Int) -> String { let minutes = Int(time) / 60 let seconds = Int(time) % 60 return String(format:"%02i:%02i", minutes, seconds) } 이제 구한 타이머를 출력하면 되겠다 Text에 구현한..

    [Python] 백준 5567번 : 결혼식

    문제 5567번: 결혼식 [ 문제 조건 ] n : 동기의 수 (즉, 숫자의 종류) m : 친구 관계 나타내는 리스트 개수 [ 해결순서 ] 상근이는 결혼식에 자신의 친구 + 친구의 친구까지 초대 가능하므로 너비우선탐색을 이용해서 자신의 친구먼저 몇명인지 탐색 후 친구의 친구까지 탐색한다. bfs 메소드를 이용해서 친구 1명을 먼저 구한다음 그 친구의 친구까지 탐색하고 다음 친구의 친구의 친구 탐색하고 초대인원 값 + 1하면 깊이를 계산해서 깊이가 2이면 (친구의 친구까지만 초대가능하므로) 총 초대인원 출력하고 종료한다. ✏️한줄평 : 처음에 이진트리를 생각해서 그렇게 풀려고 했는데 사실 굳이 그럴필요 없이 그냥 bfs로 친구들 탐색하고 깊이 +1 하다보면 구해지는 문제였다. 코드