본문 바로가기 메뉴 바로가기

Junku's 개발 블로그

프로필사진
  • 글쓰기
  • 관리
  • 태그
  • 방명록
  • RSS

Junku's 개발 블로그

검색하기 폼
  • Junku's 관심분야! (41)
    • Machine Learning (0)
    • Deep Learning (0)
    • Unity (3)
    • Android (16)
      • Kotlin (11)
    • Vue.js (0)
    • Spring (8)
      • Java (8)
    • Django (0)
      • Python (0)
    • 운영체제 (0)
    • 네트워크 (0)
    • 알고리즘 (12)
      • Programmers (6)
      • BeakJoon (6)
      • SWEA (0)
    • iOS (0)
      • Swift (0)
    • 잡담 (1)
  • 방명록

전체 글 (41)
[BOJ] 구간 합 구하기 4 in Kotlin

문제 풀이 아이디어는 Python 풀이와 같습니다. 단지.. 지금 약간 혼동이 오는게,,, 자바와 비슷한 코드로 작성했는데, 코틀린은 시간 초과가 나고 자바는 통과되네요. 다른 방식을 생각해야 할 것 같은데,,, 좀 어렵네요. import java.util.Scanner fun main(args: Array) { val sc = Scanner(System.`in`) val n = sc.nextInt() val m = sc.nextInt() val arr = IntArray(n+1) {0} for (i in 1..n) arr[i] += arr[i-1] + sc.nextInt() var i: Int var j: Int for (k in 0 until m) { i = sc.nextInt() j = sc.nex..

알고리즘/BeakJoon 2021. 12. 14. 08:22
[Kotlin] 중첩 클래스와 내부 클래스

코틀린에서는 클래스 내부에 클래스를 둘 수 있는 중첩 클래스를 지원한다. 중첩 클래스: 하나의 클래스가 다른 클래스의 기능과 강하게 연관되어 있다는 의미를 전달하기 위해 만들어진 형식 사용할 때는 외부 클래스의 이름 . 내부 클래스로 사용할 수 있다. class Outer { class Nested { // Outer.Nested() 로 사용 가능 } } 이때 중첩 클래스가 아니라 내부 클래스로 사용할 수 있는데, 다음과 같이 코드를 작성하면 된다. class Outer { inner class Nested { } } 이때 Nested는 혼자서는 객체를 만들 수는 없고 외부 클래스의 객체가 있어야만 생성과 사용이 가능하다. 그러면 왜 내부 클래스를 사용하는가? 중첩 클래스는 서로의 내용을 공유할 수 없으..

Android/Kotlin 2021. 12. 14. 07:47
[BOJ] 구간 합 구하기 4 in Python

문제 풀러 가기! 전형적인 DP 문제로 입력값이 많기 때문에 구간 마다 더하면 안됩니다. 처음 배열을 입력 받을 때 해당 배열의 누적합을 기록해준 다음 이를 이용하여 구간합을 구해주어야 합니다. 0번 index부터 차례로 하나씩 누적시키면 연산 횟수는 최대 10만번이기 때문에 1초 100,000,000을 넘지않으면서 구할 수 있습니다. 즉 i와 j의 구간합은 j번째 누적합 - i-1번째 누적합을 의미하므로 배열에 접근할 때는 시간 복잡도가 O(1)이기 때문에 빠르게 연산이 가능합니다. 이 문제에서는 O(n**2)이 아니라 O(n)으로 문제를 풀어야 한다는 것이죠. 결국 해당 문제를 종합적으로 살펴봤을 때, n 최대 10만개, m 최대 10만개로 20만번의 순회 끝내 모든 답이 도출되게 됩니다. 아래는 제..

알고리즘/BeakJoon 2021. 12. 13. 12:52
[잡담] 😀 싸피(SSAFY) 5기 합격 후기 (추합)

좀 더 나은 UI로 후기를 보시려면 velog로 오세요! 오늘은 약 1년 전에 싸피 5기에 합격했던 후기를 이야기해보려고 합니다. 1년이라는 긴 시간이 지났지만, 저에게는 SW 말고는 택할 수 있는 길이 없었기 때문에, 정말 간절했고 그리고 최초 탈이라는 쓴 맛을 본 뒤에 추가 합격의 기쁨까지 뭔가 파란만장했던 것 같은 합격 후기이기에 기록으로 남겨보려고 해요. 우선 제가 싸피에 입과하기 전의 상태는 아래와 같습니다. 1. 싸피 입과 전의 상태 😂 나이: 27(한국나이) 학력: 경기도 4년제 경제학(주전) / 응용통계학(복전), 동대학원 경제학(세부전공 금융계량) 수상경력: 금융공모전 입상, 대학원생 논문 우수상 어학: 매우 낮음 (말하기 창피할 정도로 낮음.. 사람이 아닐 정도로 낮음) 자격증: ADs..

잡담 2021. 12. 11. 17:32
[BOJ] 구간 합 구하기 5

문제풀러가기! 유명 IT회사의 문제로 이와 비슷한 문제가 수록된 적이 있습니다. 역시 DP였습니다. 그때짠 코드는 완전히 비효율적인 코드를 짰었기 때문에 시간 초과가 났지만, 이번 기회에 풀이법을 알게되었습니다. 저는 구간 합이라는 개념을 아에 모르고 있었습니다. 물론 광고삽입(2021카카오 공채)에서 출제된 문제에도 구간 합과 비슷한 개념이 들어가지만, 그걸 적용을 못했습니다. 생각이 닫혀 있는거 같아요.. 결국 문제 풀이 관건은 주어진 배열을 돌면서 (0,0)부터 (x,y)까지의 값을 행렬의 모든 원소에 적용하는 것입니다. 그리고 난 뒤에 구할 부분만 싹 빼면 되기 때문에 쉽게 접근할 수 있는 문제였습니다. 관련된 문제를 몇개 더 풀어봐야겠네요. 이김에 확실히 잡아보죠. 그리고 이 문제도 코틀린 코드..

알고리즘/BeakJoon 2021. 12. 10. 06:24
[프로그래머스] 오픈채팅방 in Python

문제 풀러 가기! 난이도는 레벨 2이고 그렇게 어렵지는 않은 문제였습니다. 제일 중요한건 입력값이 10만가까이 주어지기 때문에 O(n)으로 끝내야합니다. n 제곱으로 가는 순간 시간 초과 뜰겁니다. 그래서 저는 파이썬의 가장 큰 장점이라고 생각하는 dictionary로 문제를 풀었습니다. 제가 알기로 파이썬의 dictionary가 Hash Table로 알고 있거든요. 그래서 키값으로 접근시 시간 복잡도가 O(1)로 알고 있습니다. 주소값으로 접근하는 것이니까요. 문제의 흐름을 보면 최종적으로 닉네임이 변경된 이후에 채팅창에 보이는 enter와 leave를 출력해달라고 하고 있어요. 그래서 마지막까지 닉네임이 변경된 것을 dictionart에 반영한 뒤에 이를 이용하여 id를 순회하면서 answer에 하나..

알고리즘/Programmers 2021. 12. 9. 18:04
[프로그래머스] 문자열 압축 in Python

문제 풀러 가기 느낀점 전 사실 이 문제 어떻게 풀었는지 잘 모르겠습니다. 예전에 알고리즘을 처음 배울 때인 21년 2월 정도에, 겁도 없이 이 문제에 접근했다가 새벽까지 잠을 못자게 했던 기억이 있었습니다. 그리고 그냥 생각했어요. 아... 난 아직 이런 문제 못푸는구나..ㅜㅜ 그래서 해설도 보고 그랬는데, 못풀겠드라구요. 그게 바로 반년 전 정도였습니다. 그래서 이 문제를 풀 생각을 접고 있었습니다. 뭔가 레벨 2문제인데, 잘 모르겠다.. 이런 생각 말고는 안드니까. 풀기가 그렇더군요. 근데 사람이라는게 이번에는 혹시? 하면서 다시 이 문제를 들여다봤습니다. 물론 옆에는 빈 종이를 들고 차근차근 규칙을 찾았습니다. 다행히 규칙을 찾으니까 코드를 입력하는데 드는 시간은 얼마 안걸렸어요. 그리고 문자열의..

알고리즘/Programmers 2021. 12. 9. 00:11
[프로그래머스] 위클리 챌린지, 전력망을 둘로 나누기 in Kotlin

참고블로그: Y_LINE's_Repository 문제보러 가기 파이썬 풀이에서 저의 아이디어를 말씀드렸습니다. 그 아이디로 Kotlin으로 언어만 바꿔서 풀어보려고 했는데, 잘 안 되네요..ㅠㅠ 그래서 블로그를 참고했습니다. Kotlin 언어로 알고리즘 풀이를 사용하는 사람들이 많이 없다고 느꼈어요. 그래도 어쩔 수 없습니다. 익숙해지려면 사용해야지요. 파이썬과 비슷한 풀이면서 좀 다르다고 느낀게 이 풀이에서는 방문한 노드를 모두 HashSet에 넣어주어 중복을 방지했다는 거에요. if(hs.contains(arr[now][i])) continue은 방문한 노드인지를 체크하는 곳인데, 노드의 갯수가 100까지라고 했으니, 시간 복잡도는 그리 크지는 않을거라고 생각합니다. 하지만, 최대한 방문 리스트나 배..

알고리즘/Programmers 2021. 12. 8. 22:13
이전 1 2 3 4 ··· 6 다음
이전 다음
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
  • Junku's Github
  • Junku's Git Blog
TAG
  • 알고리즘
  • 싸피5기
  • 기본생성자
  • 카카오
  • 일반파라미터
  • 비전공싸피합격
  • 추가합격후기
  • 백준알고리즘 #BFS #델타이동 #알고리즘풀이 #개발 #안전영역 #풀스택개발자가되고싶습니다. #노력할래요 # 꾸준히 # 화이팅! #비전공개발자
  • 보조생성자
  • 중첩클래스와 내부클래스
  • 안드로이드 #안드로이드스튜디오 #Kotlin #앱개발 #안드로이드기초 #비전공개발자 #풀스택개발자 #앱개발자
  • 생성자
  • 백준
  • 앱개발
  • 프로젝트구조
  • Java
  • 코틀린
  • 백준 #숨박꼭질3 #다익스트라 #알고리즘 #비전공개발자 #풀스택 #웹개발 #앱개발 #안드로이드 #python
  • 안드로이드
  • Class
  • 구간 합 구하기 4
  • Java #객체지향 #상속 #생성자 #개념 #비전공개발자 #FullStack을 #향해
  • 비전공개발자
  • 프로그래머스
  • kotlin문법
  • Kotlin
  • Programmers #알고리즘 #Python #KAKAOINTERNSHIP #비전공개발자 #불량사용자
  • DP
  • 참조연산자
  • Python
more
«   2025/12   »
일 월 화 수 목 금 토
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 29 30 31
글 보관함

Blog is powered by Tistory / Designed by Tistory

티스토리툴바