생성자 생성자는 간단하게 얘기하면 인스턴스가 생성될 때 호출되는 '인스턴스 초기화 메소드'이다. 인스턴스 변수의 초기화 작업에 사용되고, 인스턴스 생성 시에 실행되어야 할 작업을 위해서 사용된다. 생성자명과 클래스명이 같아야 한다. 생성자는 리턴 값이 없다. void 또한 사용하지 않는다. 생성자는 몇 가지 특징을 제외하면 메소드와 다르지 않다. 생성자는 메소드 처럼 클래스 내에 선언되고, 오버 로딩이 가능하므로 하나의 클래스에 여러 개의 생성자가 존재할 수 있다. 1. 기본 생성자(default constructor) 컴파일을 할 때, 소스파일의 클래스에 생성자가 하나도 정의되어있지 않으면 컴파일러가 자동으로 기본 생성자를 생성해서 컴파일해준다. (아래 예제 참고) class Data1 { int va..
round() 함수 1. 산술평균 : N개의 수들의 합을 N으로 나눈 값 첫째 줄에는 산술평균을 출력한다. 소수점 이하 첫째 자리에서 반올림한 값을 출력한다. 위에서 주어진 것 처럼 산술평균을 구해야했었는데, 그냥 몫 나누기, 나눈 값을 int()로 감싸기 이렇게 두 방법으로 해봤다. 근데 다 안되길래 소수점 이하 첫째 자리 반올림하는 거랑 정답이 다르겠거니 했긴 했는데 사용법을 모르겠어서 검색해봤다. 자세한 문제는 [백준] 2108번 - 통계학 참고 아래처럼 round(실수, n) 형식으로 사용한다. (round(1.55555, 1) # 1.6 (round(1.55555, 0) # 2 Notion Link : https://solar-textbook-084.notion.site/round-6785865..
사전(Dictionary) 자료형 매번 딕셔너리 만들 때, 자꾸 버벅거리길래 기록용 import sys input = sys.stdin.readline n = int(input()) lst = list(map(int, input().split())) # Key Value 이렇게 설정 for i in lst: if i in answer: answer[i] += 1 else: answer[i] = 1 [3. 람다식] 이용하여 Keys, Values 정렬 출력 가능 정수(Integer)형 출력 정수+문자 같이 출력할 때 num1, num2 = 5, -10 print("%d와 %d는 다르다" %(num1, num2)) # % 사용 print(f"{num1}와 {num2}는 다르다") # f문자열 print(fo..
[백준] 10951번 A+B - 4 문제 내용 자체는 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오. 라는 문제인데 몇 번 입력받을 것인지 주어지지 않았다. 그래서 알아서 입력이 멈추면 정지해야 하는데 솔직히 어떻게 할 지 몰랐다. 찾아본 결과 try except를 사용하는 것 같아서 정리해보려고 한다. try except while True: try: A, B = map(int, input().split()) print(A+B) except: break # try: A, B에 int형이 들어가면 A+B 출력 # except: try에 대한 에러 발생 시 break # while이 가장 큰 범위이기 때문에 에러가 생기면 반복이 멈춘다. while과 try except whil..
0. sys.stdin.readline 시작하기 앞서서 파이썬은 입력받을 때 input() 을 이용하여 받는다.(특히 백준) 근데 요것이 시간을 잡아먹기 때문에 반복문이라도 들어가면 어김없이 시간 초과다. 그것을 방지하기 위해 sys 라이브러리를 이용하게 되는데 그 중 sys.stdin.readline 을 사용한다. 사용 예시와 응용은 밑의 코드 참조 import sys input = sys.stdin.readline # input 대신에 사용하기 위해서 이렇게 선언 #1 보통 한 개의 정수형 받을 때 n = int(input()) #2 한 줄에서 여러 개의 정수형 리스트로 받을 때 lst = list(map(int, input().split())) #3 여러 줄에서 문자열 받을 때 for i in ra..
영상 열화 모델(Image degradation model) 공간 영역에서 영상 f(x,y)와 공간필터 h(x,y)를 회선 처리하면 열화가 된 어ᄄᅠᆫ 형태의 영상도 만들 수 있다. 열화가 된 영상에 대해서 아래와 같이 표현한다. g(x,y) = f(x,y)*h(x,y) 기호 *는 회선 연산을 의미한다. 잡음 n까지 고려한다면 랜덤(random) 오차를 n(x,y)로 표현하여 식을 아래와 같이 표현할 수 있다. g(x,y) = f(x,y)*h(x,y)+n(x,y) 동일한 영상을 주파수 영역에서도 진행할 수 있다. 푸리에 변환의 선형성 때문에 회선 연산은 곱하기 연산으로 치환, 더하기 연산은 변하지 않고 아래 식으로 표현한다. G(i,j) = F(i,j)*H(i,j)+N(i,j) F, H, N은 f, h,..
1) 연습문제 3 zero-interleaved matrix 함수 구현 교재에 머리 부분 배열을 알려준다. 그리고 문제에서 명령어의 순서를 사용해야 하기 때문에, resize를 이용해서는 진행하지 않았다. 세 가지 필터 정의 ① Nearest ② Bilinear ③ Bicubic 교재는 zero-interleaved를 보여줬지만, 대신에 원본을 확대해보았다. Nearest - aliasing 생성된 느낌이 든다. Bilinear - aliasing이 생성되었다가 부드러워진 느낌이 든다. Bicubic - 너무 흐려져서 Blur 처리된 느낌이 든다. 원본을 확대한 것은 Bilinear와 Nearest의 사이지만 Bilinear와 유사한 느낌이다. 2) 연습문제 5 2배는 많고 8배는 큰 거 같아서 적당히 ..
1) 연습문제 1의 c, d, e, f 연습문제 1의 9X9 배열과 a~h 마스크이다. 이 중 c~f 마스크만 손으로 계산해봤다. 2) 연습문제 2의 c, d, e, f 연습문제 1의 9X9 배열 x, c~f 마스크 선언 연습문제 1의 c~f 마스크를 x에다가 적용(필터링)해보자. - mask c 적용 - mask d 적용 - mask e 적용 - mask f 적용 연습문제 1의 손으로 작성한 것과 결과가 같다. 3) 연습문제 4 – 필터(마스크)를 사용하여 공간 필터링을 수행해도 원 영상과 결과 동일 영상이 나타나는 필터를 설계 – 연습문제 1의 행렬을 사용하여 설계한 필터로 필터링한 결과를 제시 1. 중앙부 값이랑 동일 값으로 반환하면 공간 필터링을 수행해도 원본 영상과 값이 같다. 3X3에서 중앙값..