본문 바로가기
728x90

전체 글422

자료구조론(4) Template 함수 template, 클래스 template이 존재한다. 함수나 클래스를 개별적으로 작성하지 않아도 template을 통해 원하는 자료형으로 상황에 맞추어 함수나 클래스를 이용할 수 있도록 한다. #include using std::endl; using std::cout; template T myAdd(T a, T b) { return a+b; } int main(void) { cout 2022. 10. 3.
Baekjoon Training #1012 #1012 #테스트케이스 개수 t입력 t = int(input()) #crawl 함수 정의 #지렁이가 기어다니며 배추의 해충을 제거하는 과정 정의 def crawl(x, y): #좌우, 상하로 기어다니기 위해 이동 조종키 역할을 하는 searchx,y list searchx = [1, -1, 0, 0] searchy = [0, 0, 1, -1] #좌우, 상하로 기어다니는 반복문 for i in range(4): cx = x + searchx[i] cy = y + searchy[i] #기어가는 위치가 밭의 크기를 넘지 않도록 함 if(0 2022. 10. 1.
Baekjoon Training #1992 #1992 #n by n pixel의 video를 압축하는 문제 #pixel수를 결정할 n을 입력받는다. n=int(input()) #2차원 list를 입력받는다. video=[list(map(int, input())) for k in range(n)] #압축기 compressor 함수를 정의한다. def compressor(x, y, n): #parameter는 x,y좌표, n이다. pixel = video[x][y] #특정좌표의 값을 pixel값으로 설정 #pixel의 오른쪽과 아래쪽으로 퍼져나가며 조사를 진행한다. for i in range(x, x+n): for j in range(y, y+n): #조사한 부분중 pixel과 일치하지 않는 값이 존재하면 pixel을 -1로 설정 if pixel !.. 2022. 9. 27.
자료구조론(3) 오버로딩 함수의 구별 -시그니쳐가 같은 함수는 하나만 정의 (동일한 클래스 내부) -시그니쳐=> 함수이름, 형식 매개 변수의 수와 자료 유형 함수 오버로딩 -동일한 이름의 함수를 중복정의하는 것 => 이름만 같고 인자의 개수와 타입은 다른것) -조건 => 매개 변수의 개수 혹은 타입이 일치하지 않아야함 => 호출할 함수를 매개변수의 정보까지 참조해서 호출 -mangling: func(int) => func_int로 변환해서 참조 디폴트 매개 변수 -전달되지 않은 인자를 대신하기 위한 기본 값이 설정되어 있는 변수 int addInteger(int x, int y) { return x + y; } double addDouble(double x, double y) { return x + y; } 오버라이딩 .. 2022. 9. 26.
Baekjoon Training #1543 #1543 word = str(input()) search = str(input()) #문자열과 찾고자하는 타겟 문자열을 입력받는다. count = 0 i = 0 #카운터 역할을 할 count와 i를 0으로 초기화해놓음 while i 2022. 9. 26.
Baekjoon Training #1449 #1449 #물이 새는 곳의 개수 n과 테이프의 길이 l을 입력받음 n,l = map(int,input().split()) #물이 새는 위치인 pos를 list에 입력받음 pos = list(map(int,input().split())) #물이 새는 위치가 정렬이 안되어있을 수 있으니 정렬을 해줌 pos.sort() #양옆으로 0.5만큼 커버해야하니 start를 pos[0]보다 0.5만큼 왼쪽으로 잡음 start = pos[0] - 0.5 count = 1 #카운터 설정(테이프 개수) #for문 이용하여 그리디 알고리즘 실행 for i in range(1, len(pos)): #기존의 테이프로 다음 새는 곳이 커버가 된다면 새로운 테이프 이용 if start + l >= pos[i] + 0.5: cont.. 2022. 9. 26.
Baekjoon Training #1436 #1436 #n번째 영화의 제목 n=int(input()) #n입력 cnt=0 #counter변수 0으로 초기화 num=666 #666부터 전수조사를 위해 num을 666으로 초기화 while True: #num을 string으로 바꿔서 666이 포함이 되어있으면 counting진행 if "666" in str(num): cnt+=1 #counter가 입력한 n과 일치하면 num을 출력 if cnt==n: print(num) break #목표값을 찾으면 전수조사 종료 num+=1 #반복문이 진행될때마다 num을 1씩커지게해서 전수조사 진행 조건문을 이용해서 문자열에서 원하는 내용이 있는지 조사하는 방법을 알게되었다. 브루트포스 알고리즘 즉 전수조사 알고리즘의 핵심은 반복문을 통해 base가 되는 값들을 .. 2022. 9. 20.
Baekjoon Training #7568 #7568 num = int(input()) #학생 수 입력 slist = [] #학생 스펙 리스트 anslist=[] #덩치 등수 리스트 for i in range(num): w, h = map(int, input().split()) #무게와 키를 입력받음 slist.append((w, h)) #학생 스펙 리스트에 입력함 #브루트포스 알고리즘 진행 for a in slist: #등수 지정할 학생 지정 rank = 1 #초기 등수는 1로 시작 for b in slist: #비교대상 학생 지정 if a[0] 2022. 9. 20.
Baekjoon Training #25304 #25304 x = int(input()) n = int(input()) sum = 0 for i in range (n): a,b = map(int,input().split()) sum += a*b if x == sum: print("Yes") else: print("No") 반복문에 새로운 문제가 등록되어 풀어보도록하였다. 특별한 for문이라기 보다는 단순하게 map을 활용하여 여러값을 반복적으로 입력받고 0으로 설정해놓은 sum에 계속해서 더해주었다. 입력이 종료되면 처음 입력해준 x값과 sum의 값을 비교하여 Yes 또는 No를 출력하였다. 2022. 9. 18.
자료구조론(2) 함수 호출 int main(void) { int sum; int a=4. b=5; sum = add(a,b); cout 2022. 9. 12.
Baekjoon Training #11050 #11050 이항계수는 이와같이 계산되므로 위의 식을 코드로 작성해준다. from math import factorial n,k=map(int, input().split()) ans=factorial(n)//(factorial(k)*factorial(n-k)) print(ans) math 모듈에서 factorial을 import해왔다. factorial 함수를 이용하여 위 식을 구현해주고 출력하였다. 2022. 9. 8.
Baekjoon Training #1037 #1037 a=int(input()) n=list(map(int,input().split())) print(min(n)*max(n)) 첫째줄로 약수의 개수를 입력받고 둘째줄로 약수들을 입력받는다. 약수의 최소값과 약수의 최대값을 곱하면 찾고자하는 N의 값을 구할 수 있으므로 min, max함수를 이용하여 출력한다. 2022. 9. 5.
728x90