전체 글
-
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..
-
23.01.14 Kotlin Class와 field개발 이야기/TIL 2023. 1. 14. 22:00
JAVA랑 Kotlin이랑 비슷하다고 했던거 같은데... 으음 공부하다보니 다른 부분들이 꽤나 많은 것 같다. 오늘은 Kotlin의 Class에 관해서 JAVA와 비교해서 이것저것을 정리해보려고 한다. 아래의 코드를 기반으로 설명을 시작해보자. //JAVA 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 height; } public voi..
-
23.01.13 Kotlin not null operator !!.개발 이야기/TIL 2023. 1. 13. 16:14
null과 자료형을 처리할 때 JAVA에서는 if 등의 조건문이나, error handling으로 이를 잡아주었다(자료형이 맞지 않는 경우에도 ) 코틀린에서는 이를 간단하게 null operator를 통해 해결하였다. https://kotlinlang.org/docs/null-safety.html 위의 문서는 kotlin의 null safety에 관한 공식문서이다. 아래와 같은 kotlin코드가 있다고 해보자. 보통 a라는 variable에 readLine으로 값을 사용자가 입력할 수 있는 형태이다. 이때 만약에 readLine에 해당하는 구문에 사용자가 null 값을 준다면? 에러가 발생할 것이다(toInt()로 바꿀수 없기에) fun main(args: Array) { var a = readLine(..
-
python 2중 배열 문제&행,열 다루기개발 이야기/알고리즘 및 코테 준비 2023. 1. 11. 14:45
#CodeUP 바둑알 십자 뒤집기 6096 https://codeup.kr/problem.php?id=6096 [기초-리스트] 바둑알 십자 뒤집기(py) python언어기초100제v1.0 : @컴퓨터과학사랑, 전국 정보(컴퓨터)교사 커뮤니티/연구회 - 학교 정보(컴퓨터)선생님들과 함께 수업/방과후학습/동아리활동 등을 통해 재미있게 배워보세요. - 모든 내용 codeup.kr lst = [[0 for j in range(19)] for i in range(19)] #j column, i row #get input for i in range(len(lst)): lst[i] = list(map(bool, map(int, input().split()))) n = int(input()) for i in range..
-
23.01.10 python list와 2차원 배열개발 이야기/TIL 2023. 1. 11. 14:08
#Python list python에서 list는 우리가 흔히 쓰는 배열과 다르게 크기가 정해져있지 않다. 수정, 삭제, 추가가 가능하며, []로 작성한다. 인덱스는 동일하게 0부터 시작한다. #List 선언 #단순하게 lst = [] #0으로 채워진 특정 크기의 lst 선언(list comprehension) lst = [0 for i in range(n)] #list comprehension 2중list lst = [[0 for j in range(n)] for i in range(m)] #위의 2중 배열의 경우 n*m size의 list반환 #List slicing과 추출 a = [1,2,3,4,5] a[0] = 1 a[1:3]= 2,3 #이상, 미만, 끝은 포함되지 않음 print(number[1..
-
23.01.06 python 다양한 진수(2진수, 8진수, 16진수) 표현하기개발 이야기/TIL 2023. 1. 6. 23:50
우리는 기본적으로 10진수 형태로 숫자를 표현한다. 하지만 컴퓨터는 2진수, 8진수, 16진수 등 다양한 진수를 사용할 때가 있다. 이때 대표적으로 Hexadecimal(16진수) 표현법은 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F를 사용한다. 이때 A부터 각각의 문자는 10, 11,12,13,14,15를 의미한다 다른 진수 형태로 숫자 표현하기 2진수는 binary, 8진수는 octal(그 화학할때 옥탈이다), 16진수(hecadeciamal)임으로 여기서 따와서 2진수는 0b, 8진수는 0o, 16진수는 0x로 시작한다. 아래의 예시로는 16진수를 변환하는 예시를 위주로 작성할 예정이다 #10진수를 16진수로 변환하기 10진수에서 다른 진수로 변환할 때 아래와 같은 내장함수를 이용한다...
-
python 369를 하자개발 이야기/알고리즘 및 코테 준비 2023. 1. 6. 16:10
문제: 특정 숫자 n을 입력했을 때 그 수까지 공백을 두고 수를 출력한다. 이때 3, 6, 9 중 하나라도 포함되어 있으면, 그 수 대신 영문 대문자 X를 출력한다. 33과 같이 3,6,9가 두 번 들어간 수 일때, "X"과 같이 X를 출력하는 형태도 있다. 풀이: 이 문제는 생각보다 간단(?)하게 해결할 수 있다.수를 문자열로 바꾸고, slicing한 후 for문을 돌면서 3,6,9가 몇개가 있는지 count하면 된다. 이 때 3, 6, 9를 ==로 확인 가능하지만 %3==0으로 확인할 수도 있다. 다만 후자의 경우 0도 포함되기에 0인 case는 제외해줘야한다. 코드는 아래와 같다, n = int(input()) for i in range(1,n+1): s = str(i) count = 0 for x..
-
23.01.05 bit 단위 연산 ~(틸드)와 음수의 표현법, 아스키코드개발 이야기/TIL 2023. 1. 6. 12:44
비트단위(bitwise) 연산자 ~: tilde, 틸드라고 읽는다 비트단위 연산자는 bit를 0 ->1로 혹은 1->0으로 바꾸어준다. 예를 들어 십진수 1은 2진수로 바꾸면 00000000 00000000 00000000 00000001 이다. 이를 ~1로 비트단위로 연산자로 바꾸어주면 11111111 11111111 11111111 11111110 이 된다. 이는 -2이다. 그 이유는 음의 정수는 "2의 보수 표현법"으로 저장되기 때문이다. #음수의 표현 방법 음수의 표현방법은 크게 3가지이다. 1. 부호비트 사용: 최상위 1비트를 부호를 사용하는데 이용 2. 1의 보수법: 해당양수의 모든 비트를 반전하여 음수로 표현하는 방법 -> ~를 사용한다고 생각하면 편함 즉, 위의 1의 예시에서 ~1이 -2가..