728x90 전체 글426 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. Baekjoon Training #5086 #5086 while True: a, b = map(int, input().split()) if a == 0 and b == 0: break elif b % a == 0: print('factor') elif a % b == 0: print('multiple') else: print('neither') while문을 통해서 a와 b가 동시에 0이 되는 시점까지 반복하여 입력을 받는다. 조건 4가지를 걸어준다. 첫번째는 a와 b가 동시에 0이 되는 경우로 break를 걸어준다. 두번째는 b가 a로 나누어 떨어지는 경우로 factor를 출력해준다. 세번째는 a가 b로 나누어 떨어지는 경우로 multiple을 출력해준다. 마지막으로 이 모든 경우에 해당되지 않으면 neither를 출력해준다. 2022. 9. 4. 자료구조론 기초(1) C++ c++의 설계 철학 -엄격한 타입 검사, 범용 언어, 효율적, 이식성 -여러 가지의 프로그래밍 스타일을 지원(절차 지향, 데이터 추상화, 객체 지향, 일반화) -프로그래머가 자유롭게 선택할 수 있도록 설계 -최대한 C와 호환 -플랫폼에 의존적이거나 일반적이지 않은 특징은 제거 c++의 특징 -클래스(class) => 클래스를 이용하여 하나의 객체의 속성과 동작들은 한곳으로 모아서 정의 -상속(inheritance) => 클래스를 상속받아서 기존의 코드를 재사용 -연산자 중복(operator overloading) => 대상에 따라서 동일한 연산자로 새로운 연산을 정의 -함수 중복(function overloading) => 매개 변수만 다르면 동일한 이름의 함수를 여러 개 만들 수 있음 -동적 메.. 2022. 9. 4. Coursera-Supervised Machine Learning: Regression and Classification (7) Gradient descent intuition gradient descent식을 해석해보았다. 미분값은 w지점의 접선의 기울기를 의미하므로 J가 우상향일때는 양수의 값이 나오고 J가 우하향일때는 음수의 값이 나온다. 양수의 값이 나오면 learning rate인 alpha값은 양수이므로 w를 감소시키는 함수가 된다. 우상향일때 w를 감소시키면 J가 최소인지점과 가까워지므로 올바른 식임을 알 수 있다. 음수의 값이 나오면 반대로 w를 증가시키는 함수가 된다. 우하양일때 w를 감소시키면 J가 최소인 지점과 가까워지므로 이또한 올바른 식임을 알 수 있다. 이렇게 grdient descent에 대한 직관적인 해석을 해보았다. Learning rate 이전부터 이용하던 alpha값 learning rate는 학.. 2022. 8. 24. Baekjoon Training #1085 #1085 x, y, w, h = map(int, input().split()) way1 = w - x way2 = h - y print(min(x, y, way1, way2)) 가로의 길이가 w 세로의 길이가 h인 직사각형안에 있는 점인 (x,y)에서 직사각형의 변까지 가는 거리의 최솟값을 구하는 문제인데 처음에는 착각을 하고 x,y좌표에서 x,y축의 양의 방향으로 이동시켜서 직사각형의 변까지 도착하는 경우만 고려를 하여 print(min(way1, way2))라고 코드를 작성하여 오답이 나왔었다. x, y축의 음의 방향으로 이동을 시켜도된다는 것을 인지하고 min함수에 4개의 인자 x, y, way1, way2를 넣어서 코드를 작성하였다. 여기서 way1과 way2는 각각 w-x와 h-y로 (x,y).. 2022. 8. 24. Coursera-Supervised Machine Learning: Regression and Classification (6) Gradient descent Cost fuction J(w,b)를 얻었다면 그 값을 최소화 하는 것이 적절한 model을 만들기위한 parameter를 결정하는 방법이다. 이때 w와 b을 계속 바꿔가며 J(w, b)값을 감소시키며 최소값에 최대한 가깝게 또는 최소값에 도달하도록 한다. 서서히 최소값을 향하는 방향으로 새로운 w, b를 조사하고 반복한다. 위의 그림에서 볼 수 있듯이 시작점의 사소한 차이가 전혀 다른 결과값을 초래하고 그 지점들은 local minima이다. Gradient descent algorithm 여기서 = 는 양변이같다는 등호가 아니라 코딩에서 이용하는 대입연산자의 개념이다. alpha는 learning rate로 좌표를 변화시키는 정도를 의미한다. 뒷 부분은 derivativ.. 2022. 8. 22. Baekjoon Training #3009 #3009 x = [] y = [] for i in range(3): a, b = map(int, input().split()) x.append(a) y.append(b) for i in range(3): if x.count(x[i]) == 1: a = x[i] if y.count(y[i]) == 1: b = y[i] print(a, b) 단순히 세점이 주어지고 직사각형을 만드는 네번째 점을 찾는 문제였다면 고려해야할 사항이 많았겠지만 축에 평행한 직사각형을 만드는 문제였기에 문제는 단순해졌다. 우선 리스트x, y를 만들어서 각각 점들의 x축 좌표의 정보와 y축 좌표의 정보를 담아둔다. 축에 평행한 직사각형이기에 x던 y던 하나의 값을 최소 두점이 갖고 있어야하기 때문에 이점을 이용하여 리스트 x, y에.. 2022. 8. 19. 2022 인공지능대학원 심포지엄 글로벌 AI리더가 되기 위한 전략 Coursera에서 수강중인 강의의 교수이신 Andrew Ng을 비롯한 다양한 AI의 global leader들의 소개를 간단히 들었다. 앞으로의 수준 높은 종합인지/추론을 요구하는 AI는 복합지능이 중요하다. 현재 거대 글로벌 기업들이 막대한 자본을 들여 AI부문을 리딩하고 있고 이를 쫓고 우리나라가 AI부문에서 뒤쳐지지 않고 연구자들을 지원하고 선순환을 만들기 위해서 패널분들은 입을 모아 긍정적인 클러스터 구축을 주장했다. 또한 기술에 있어서의 산업적인 세계화의 중요성을 논하였다. 세계적으로 유명한 AI연구소에 대해서도 알게 되어 앨런 튜링 연구소, 리비아, JP 모건 연구소 등에 대해서 알아보는 기회가 되었다. 한국에서 가장 적극적인 Visual AI부문에서 굉장히.. 2022. 8. 18. Baekjoon Training #11478 #11478 s=input() cnt=set() for i in range(len(s)): for j in range(i,len(s)): cnt.add(s[i:j+1]) print(len(cnt)) 이중 for문을 이용하여 문자열의 부분들을 지정한다. set에 추가를 해주어 반복되는 부분 문자열은 자연스럽게 제거를 해준다. 그 후에 set의 길이를 len함수로 구해서 출력한다. 2022. 8. 18. 이전 1 ··· 30 31 32 33 34 35 36 다음 728x90