본문 바로가기

Coding

[PS] 알고리즘 문제 풀이 - 유용한 팁 및 문제 리스트 정리 BasicBase knowledge문제는 다음 링크를 통해 확인할 수 있다.백준: boj.kr/{문제 번호}정올: jungol.co.kr/problem/{문제 번호}채점용 서버는 일반적으로 1초에 1~5억번의 연산을 수행한다. 따라서 데이터가 $n=10000\sim20000$개 일 때 $O(n^2)$ 알고리즘은 제한시간 1초 내 통과하기 어렵다.#include bits/stdc++.h> 를 사용한다. Mac이나 Windows는 기본적으로 해당 파일이 존재하지 않으므로 해당 링크에서 다운로드 받은 후 아래 경로에 넣어준다.Mac:  /Library/Developer/CommandLineTools/usr/bits/stdc++.h Windows: C:\Program Files (x86)\Microsoft Vi.. 더보기
[PS] 자료구조와 알고리즘 개념 정리 (Algorithm) Part 2 Algorithm Math Recursion 재귀(Recursion)는 함수가 자기 자신을 호출하여 문제를 해결하는 방식이다. 재귀로 문제를 푼다는 것은 귀납적인 방식으로 문제를 해결하겠다는 것과 동일하다. 올바른 재귀 함수는 반드시 특정 입력에 대해서는 자기 자신을 호출하지 않고 종료되어야 하는데 이를 보통 base condition이라고 한다. 또한 모든 입력은 base condition으로 수렴해야 한다. 재귀는 반복문으로 구현했을 때와 비교하여 코드는 간결하지만 메모리와 시간 측면에서는 일반적으로 손해를 본다. 재귀는 분할 정복 알고리즘, 트리 탐색 등에 널리 사용된다. Sort Bubble Sort 인접한 두 원소를 비교하여 정렬하는 방식으로, 시간 복잡도가 높아 실제로는 잘 사용되지 않는다. .. 더보기
[PS] 자료구조와 알고리즘 개념 정리 (Data Structure) Part 1 본 포스팅은 필자가 Problem Solving(PS)를 공부하면서 정리한 포스팅이다.Data structureLinked list연결 리스트(Linked List)는 노드들이 포인터로 연결되어 있는 선형 자료구조이다. 각 노드는 데이터와 다음 노드를 가리키는 포인터로 구성되어 있으며, 데이터의 동적 추가 및 삭제가 용이하다.  연결하는 방법 및 개수에 따라 단일 연결 리스트(single linked list), 이중 연결 리스트(double linked list), 원형 연결 리스트(circular linked list)로 구분할 수 있다. 배열과 달리 임의의 원소로 가기 위해서는 첫번째 원소부터 순서대로 방문해야 한다.배열과 달리 메모리 상의 배치가 불연속적이다.Overhead : 다음 원소의 주소값.. 더보기
VPython 예제10 - 2자유도 반한정계 스프링-질량 애니메이션 1 문제 위의 조건을 바탕으로 2자유도 반한정계 스프링-질량계의 움직임을 애니메이션화하는 코드를 작성하시오. 2 코드 from vpython import * # 7.6.2 from math import * #------------------------------------------------------------------ # 그래픽 그려주는 코드 #------------------------------------------------------------------ # 그래픽창을 생성합니다 scene.center = vector(0,0,0) scene.width = 800 scene.height = 300 # 2개의 물체를 생성합니다. 거리는 5m 간격으로 일정합니다 block1 = box(pos=v.. 더보기
VPython 예제9 - 2자유도 스프링-질량계 애니메이션 (2) 1 문제 위의 조건을 바탕으로 2자유도 스프링-질량계의 움직임을 애니메이션화하는 코드를 작성하시오. 단, 중력에 의한 평형상태를 x1 = 5m, x2 = 10m 로 보고 중력의 영향을 무시한다. 2 코드 # code from https://www.youtube.com/watch?v=c3tX_qReGIM from vpython import * # 7.6.2 #----------------------------------------------------------------- # 그래픽 그려주는 코드 #------------------------------------------------------------------ # 화면 객체를 생성합니다. background 색과 카메라 center 포인트를 설정한.. 더보기
VPython 예제8 - 2자유도 스프링-질량계 애니메이션 1 문제 위의 조건을 바탕으로 2자유도 스프링-질량계의 움직임을 애니메이션화하는 코드를 작성하시오. 단, 마찰력은 무시한다. 2 코드 # code from https://youtu.be/H8CzQtx9vds from vpython import * # 7.6.2 from math import * #------------------------------------------------------------------ # 그래픽 그려주는 코드 #------------------------------------------------------------------ # 그래픽창을 생성합니다 scene.center = vector(0,0,0) scene.width = 800 scene.height = 300 # 2.. 더보기
VPython 예제7 - 공의 자유낙하 애니메이션 (free-fall) (2) 1 문제 위의 조건을 바탕으로 공의 자유낙하운동을 애니메이션화하는 코드를 작성하고 공의 x,v,a를 시간에 따라 그래프로 표현하는 코드를 작성하시오. 이 때, 공은 완전탄성충돌을 한다. 2 코드 # code from http://tcjd71.wixsite.com/vpython/blank-1 from vpython import * # 7.6.2 #------------------------------------------------------------------ # 그래픽 그려주는 코드 #------------------------------------------------------------------ # 그래픽창을 설정하는 코드 # scene.range = (5,5,5) scene.center = .. 더보기
VPython 예제6 - 단진자의 운동 애니메이션 1 문제 위의 조건을 바탕으로 단진자의 운동을 애니메이션화하는 코드를 작성하시오. 이 때, 단진자의 x방향 운동속도를 화살표로 나타내시오. 2 코드 from vpython import * # 7.6.2 from math import * #------------------------------------------------------------------ # 그래픽 그려주는 코드 #------------------------------------------------------------------ # 그래픽창을 설정하는 코드 scene.center = vector(0,-1,0) scene.width = 400 scene.height = 700 # 단진자와 이를 받쳐주는 바닥과 봉, 단진자의 실을 생성합.. 더보기
VPython 예제5 - 3자유도 스프링-질량계 애니메이션 1 문제 위의 조건을 바탕으로 3자유도 스프링-질량계의 움직임을 애니메이션화하는 코드를 작성하시오. 단, 마찰력은 무시한다. 2 코드 # code from https://youtu.be/oMBohUQz3NI from vpython import * # 7.6.2 from math import * #------------------------------------------------------------------ # 그래픽 그려주는 코드 #------------------------------------------------------------------ # 그래픽창을 생성합니다 scene = canvas(width=800, height=300, center=vector(0,0,0)) # 3개의 물체를.. 더보기
VPython 예제4 - 진자의 등속원운동 애니메이션 1 문제 위의 조건을 바탕으로 등속원운동을 하는 물체의 애니메이션 코드를 작성하고 공의 x좌표를 x-t 그래프로 나타내는 코드를 작성하시오 2 코드 # code from http://tcjd71.wixsite.com/vpython/blank-1 from vpython import * # 7.6.2 #------------------------------------------------------------------ # 그래픽 그려주는 코드 #------------------------------------------------------------------ # 그래픽창과 그래프창을 생성합니다 scene = canvas(width=600, height=600, fov = 0.01*pi) gd = gra.. 더보기
VPython 예제3 - 1자유도 스프링-질량계 애니메이션(2) 1 문제 위의 조건을 바탕으로 1자유도 스프링-질량계(1DOF spring-mass system)와 운동에너지, 탄성에너지, 역학적에너지를 애니메이션화하는 코드를 작성하시오. 단, 마찰력은 무시한다. 2 코드 # code from https://youtu.be/UoN70GjnBTI from vpython import * # 7.6.2 #------------------------------------------------------------------ # 그래픽 그려주는 코드 #------------------------------------------------------------------ m = 0.5 # 질량 k = 20.0 # 강성 v0 = 4.0 # 초기속도 # 마찰력을 고려할 때 사용하는.. 더보기
VPython 예제2 - 공의 자유낙하 애니메이션 (free-fall) 1 문제 위의 조건을 바탕으로 공이 27m 높이에서 자유낙하하는 애니메이션 코드를 작성하시오. 공의 질량은 무시하며 바닥과 공은 완성탄성충돌을 한다. 2 코드 # code from https://youtu.be/H8CzQtx9vds from vpython import * # 7.6.2 from math import * # 공과 바닥을 생성합니다. 공의 위치는 지면으로부터 18 + 9 = 27m 위에 있습니다. (vpython은 y축이 위아래방향입니다) ball = sphere(pos=vector(-5,18,0), radius=1, color=color.green) bottom = box(pos=vector(0,-9,0), size=vector(25,0.5,25)) # 초기속도는 x방향으로 0.7 m/s .. 더보기
VPython 예제1 - 1자유도 스프링-질량계 애니메이션 1 문제 위의 조건을 바탕으로 1자유도계 스프링-질량계(1DOF spring-mass system)을 애니메이션화하는 코드를 작성하시오 2 코드 # code from https://www.youtube.com/watch?v=c3tX_qReGIM from vpython import * # 7.6.2 g = 9.81 # 중력가속도 9.81 m/s^2 # 화면 객체를 생성합니다. backgroun 색과 카메라 center 포인트를 설정한다 scene = canvas(background = vector(0.36, 0.47, 0.23), center = vector(0, -0.7, -0.5)) # 천장의 물체를 생성합니다. 재질은 wood이고 색깔은 orange입니다. ceiling = box(length = 1.. 더보기