분류 전체보기
-
Python 백준 2751 set in과 list in 비교 + 이진탐색 풀이개발 이야기/TIL 2023. 1. 24. 16:16
문제 https://www.acmicpc.net/problem/10815 10815번: 숫자 카드 첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 숫자 카드에 적혀있는 정수가 주어진다. 숫자 카드에 적혀있는 수는 -10,000,000보다 크거나 같고, 10, www.acmicpc.net 시간 제한이 2초인 문제이다. 따라서 기본적인 로직을 생각하고, 시간복잡도를 고려했어야 했다. 문제를 list를 이용하는 경우 혹은 순차탐색을 이용할 경우 시간초과로 문제를 풀 수 없었다. - 첫 풀이 import sys N = int(input()) n_lst = sys.stdin.readline().strip().split() M = int(input()) ..
-
백준 18870 정렬&시간초과개발 이야기/TIL 2023. 1. 24. 12:28
문제 자체는 어렵지는 않았지만, 시간복잡도를 고려하지 않으면 시간초과가 나는 문제였다. 코테 문외한&초보인 나에게는 풀었는데 시간 초과가 나니 답답했던 문제 https://www.acmicpc.net/problem/18870 18870번: 좌표 압축 수직선 위에 N개의 좌표 X1, X2, ..., XN이 있다. 이 좌표에 좌표 압축을 적용하려고 한다. Xi를 좌표 압축한 결과 X'i의 값은 Xi > Xj를 만족하는 서로 다른 좌표의 개수와 같아야 한다. X1, X2, ..., XN에 좌 www.acmicpc.net 문제 수직선 위에 N개의 좌표 X1, X2, ..., XN이 있다. 이 좌표에 좌표 압축을 적용하려고 한다. Xi를 좌표 압축한 결과 X'i의 값은 Xi > Xj를 만족하는 서로 다른 좌표의 ..
-
Python 자료형 List, Tuple(튜플), dictionary(딕셔너리), set개발 이야기/TIL 2023. 1. 24. 11:18
List lst = [1,2,3,0,-4,100] list, 파이썬에서는 배열(array)를 제공하지 않는데, 대신 list를 제공한다. 다만 이는 내부적으로 dynamic array와 같다. list에서 특정 요소에 접근하기 lst = [1,2,3,0,-4,100] lst[0] 1 lst[-1] 100 이중 list에서 값에 접근하기 lst = [1,2,[100,99],4] lst[2] [100, 99] lst[2][0] 100 이중 배열 선언하기 lst = [[0 for j in range(19)] for i in range(19)] #j column, i row 여러 함수들 lst = [1,2,3,0,-4,100] lst.append(2) lst.sort() lst.reverse() lst.inse..
-
Python Counter와 Counter 사용 문제(백준 2108, 최빈값 찾기)개발 이야기/알고리즘 및 코테 준비 2023. 1. 24. 10:31
문제 2108 최빈값 찾기 www.acmicpc.net/problem/2108 2108번: 통계학 첫째 줄에 수의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 단, N은 홀수이다. 그 다음 N개의 줄에는 정수들이 주어진다. 입력되는 정수의 절댓값은 4,000을 넘지 않는다. www.acmicpc.net 해당 문제 중 최빈값(mode)를 구하는 문제는 python에서는 collection의 Counter를 사용하는 것이 편하다고 한다. (sort이후에 lst[i]==lst[i+1]로 풀라고하다가 계속 틀려서 counter를 이용했다..ㅎ) 대다수의 python으로 푼 최빈값 구하기 알로리즘에서 counter를 이용했기 때문에 간단히 이에 대해 정리하였다. 풀이는 바로 아래에 적어놓았다 풀이 mpor..
-
Python List 자료형 변경과 Sort개발 이야기/알고리즘 및 코테 준비 2023. 1. 20. 14:37
Original list의 자료형을 변경 original_lst = ["1", "2", "3"] lst = list(map(int, original_lst)) map을 사용해서 자료형을 변경하면 된다. 이때 map은 map object를 반환하기에 list로 다시 감싸주어야한다. map의 int에 해당하는 부분은 다른 함수로 변경 가능하다 List comprehension python의 장점을 살린 list 기능. list에서 내가 원하는 요소를 추출해서 새로운 list를 만들고 싶을 때 주로 사용한다. lst = [2,3,3,5,1,19] #newlist = [x for x in lst if ~] #짝수만 추출하기 new_lst = [x for x in lst if x%2==0] fillter내장함수도..
-
23.1.17 Kotlin Setter&Getter개발 이야기/TIL 2023. 1. 17. 17:41
이어서 코틀린의 setter와 getter이다. 14일 글을 조금 더 자세히 적어보고자 한다(수정본..에 가깝다) Getter & Setter 기본형 1. Kotlin에서는 JAVA와 다르게 primal constructor에 대해 Getter와 Setter을 컴파일 시 생성해준다. public class Button { private int width; private int height; //constructor public Button(int width, int height){ this.width = width this.height = height } //getter public int getWidth(){ return width; } public int getHeight(){ return heigh..
-
Kotlin Data Class개발 이야기/TIL 2023. 1. 17. 15:46
코틀린의 Data Class는 일반적인 Class와 다르게 데이터를 다룰때 편한 class이다. 특징 코틀린에서 getter와 setter를 컴파일 타임에서 생성해주는 것처럼, data class는 컴파일 타임에서 equls(), hashCode(), toString(), copy(), componentN()를 생성해준다. 기본생성자를 1개 이상 가져야하고, val or var로 선언해야한다. 상속을 받을 수 없다(부모클래스에서 내부적으로 자동생성하는 함수들이 있는 경우 충돌이 날 수도 있다) equals() 내용이 같은지 판단하여, 값이 일치하면 true, 불일치시 false를 반환한다(type은 비교하지 않는다) fun main(){ val a = User(10,"진혁") println(a==User..
-
23.01.17 Kotlin Class와 생성자(init, constructor)개발 이야기/TIL 2023. 1. 17. 13:19
저번 글에서 썼던 부분 중 생성자에 관한 부분이 보강이 필요한 것 같아서 하나씩 나누어서 재작성하는 중이다. 참고 강의: https://www.udemy.com/course/best-android-12-kotlin Class vs instance vs object class는 기본적으로 청사진이라고 생각하면 된다. 이 표현이 어려우면 붕어빵틀이라고 생각하면 된다. 이 붕어빵 틀을 이용해서 우리는 실제 붕어빵, 객체(object)를 만들 수 있다. 또 그 안의 속재료를 변경할 수도 있다. 이 중 우리가 실제로 다루는 것, 사용하는 것들을 인스턴스라고 한다. //class class Boong(ing:String){ } //object, instance shoBoong = Boong("sho") phatBo..