본문 바로가기

분류 전체보기

(388)
<수학2> 4153번 직각삼각형 with 파이썬 문제 과거 이집트인들은 각 변들의 길이가 3, 4, 5인 삼각형이 직각 삼각형인것을 알아냈다. 주어진 세변의 길이로 삼각형이 직각인지 아닌지 구분하시오. 입력 입력은 여러개의 테스트케이스로 주어지며 마지막줄에는 0 0 0이 입력된다. 각 테스트케이스는 모두 30,000보다 작은 양의 정수로 주어지며, 각 입력은 변의 길이를 의미한다. 출력 각 입력에 대해 직각 삼각형이 맞다면 "right", 아니라면 "wrong"을 출력한다. 정답비율 54.849% while True : lst = list(map(int, input().split())) lst.sort() a = lst[0] b = lst[1] c = lst[2] if a==b==c==0 : break if (a*a)+(b*b) == (c*c) : p..
<수학2> 3009번 네 번째 점 with 파이썬 문제 세 점이 주어졌을 때, 축에 평행한 직사각형을 만들기 위해서 필요한 네 번째 점을 찾는 프로그램을 작성하시오. 입력 세 점의 좌표가 한 줄에 하나씩 주어진다. 좌표는 1보다 크거나 같고, 1000보다 작거나 같은 정수이다. 출력 직사각형의 네 번째 점의 좌표를 출력한다. 정답비율 73.725% x1, y1 = map(int, input().split()) x2, y2 = map(int, input().split()) x3, y3 = map(int, input().split()) # x값 비교하여 x4 구하기 if x1 == x2 : x4 = x3 elif x1 == x3 : x4 = x2 else : x4 = x1 # y값 비교하여 y4 구하기 if y1 == y2 : y4 = y3 elif y1 ..
<수학2> 1085번 직사각형에서 탈출 with 파이썬 문제 한수는 지금 (x, y)에 있다. 직사각형의 왼쪽 아래 꼭짓점은 (0, 0)에 있고, 오른쪽 위 꼭짓점은 (w, h)에 있다. 직사각형의 경계선까지 가는 거리의 최솟값을 구하는 프로그램을 작성하시오. 입력 첫째 줄에 x, y, w, h가 주어진다. 출력 첫째 줄에 문제의 정답을 출력한다. 정답비율 58.188% x, y, w, h = map(int,input().split()) North = h - y South = y - 0 West = x - 0 East = w - x lst = [North, South, West, East] # print(lst) # [1, 2, 6, 4] print(min(lst)) 제한으로 주어진 직사각형의 너비와 높이값이 매우 작아서 단순하게 코딩하면 되는 문제였다. 사..
<커리큘럼> 개인적인 프론트엔드 공부방향 이 글은 초보자의 지극히 주관적인 글이며, 개인적인 공부방향을 작성하였습니다. 1. 서론 지난 2020년 10월, 오랜 고민끝에 프론트엔드 개발자가 되기로 결정했다. 경제학 전공으로서 4년간의 배움이 아깝기도 하고, 취미삼아 잠깐 했었던 파이썬을 쓰지도 않아서 정말 힘든 결정이었다. 처음에는 파이썬을 기왕 시작했기도 했으니 백엔드개발자가 되볼까도 생각했으나, 난 논리적으로 무엇인가를 설계하는 것보다 당장 눈에 보이는걸 선호했다. 물론 BE도 신기했다. 그러나 FE를 하면 정말 너무 재미있고 새벽까지 잠도 안자고 할 수 있었다. 그렇게 프론트엔드에 관심을 갖고 현직자와 연락도 해보고, 비전공자에서 개발자가 되신 분과도 상담해본 결과 충분히 가능하다는 결론을 냈다. 물론 4년이상 배운 전공이 정말 아깝다는 ..
<수학2> 9020번 골드바흐의 추측 with 파이썬 문제 1보다 큰 자연수 중에서 1과 자기 자신을 제외한 약수가 없는 자연수를 소수라고 한다. 예를 들어, 5는 1과 5를 제외한 약수가 없기 때문에 소수이다. 하지만, 6은 6 = 2 × 3 이기 때문에 소수가 아니다. 골드바흐의 추측은 유명한 정수론의 미해결 문제로, 2보다 큰 모든 짝수는 두 소수의 합으로 나타낼 수 있다는 것이다. 이러한 수를 골드바흐 수라고 한다. 또, 짝수를 두 소수의 합으로 나타내는 표현을 그 수의 골드바흐 파티션이라고 한다. 예를 들면, 4 = 2 + 2, 6 = 3 + 3, 8 = 3 + 5, 10 = 5 + 5, 12 = 5 + 7, 14 = 3 + 11, 14 = 7 + 7이다. 10000보다 작거나 같은 모든 짝수 n에 대한 골드바흐 파티션은 존재한다. 2보다 큰 짝수..
<자바스크립트 기초> 18. 스크롤 이벤트 (2) * 지속적인 스크롤 이벤트 - 스크롤이 움직일 때마다 캐릭터가 움직이고 스크롤이 멈추면 캐릭터도 멈추는 이벤트를 만든다고 가정하자. - 이 때 스크롤 때마다 빈번히 일어나는 작업은 자칫하면 메모리를 엄청나게 잡아먹을 수 있다. 즉 스크롤이 움직일때마다 if문이 실행되고 멈추면 다른 if문이 실행되고, 계속 스크롤의 움직임을 확인한다든지 여러 경우가 있다. - 우리는 효율적인 작업을 위해 Timeout을 사용할 것이다. - 상태를 나타내기위해 scrollState라는 변수에 미리 false값을 담아두었다. 멈춘 것을 false로 표현하기 위함이다. - 캐릭터가 움직이는 것은 'moving'이라는 클래스를 추가하여 실행할 것이고, 스크롤이 멈추면 'moving'클래스를 제거하여 캐릭터를 멈출 것이다. Cha..
<수학2> 4948번 베르트랑 공준 with 파이썬 문제 베르트랑 공준은 임의의 자연수 n에 대하여, n보다 크고, 2n보다 작거나 같은 소수는 적어도 하나 존재한다는 내용을 담고 있다. 이 명제는 조제프 베르트랑이 1845년에 추측했고, 파프누티 체비쇼프가 1850년에 증명했다. 예를 들어, 10보다 크고, 20보다 작거나 같은 소수는 4개가 있다. (11, 13, 17, 19) 또, 14보다 크고, 28보다 작거나 같은 소수는 3개가 있다. (17,19, 23) 자연수 n이 주어졌을 때, n보다 크고, 2n보다 작거나 같은 소수의 개수를 구하는 프로그램을 작성하시오. 입력 입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 케이스는 n을 포함하며, 한 줄로 이루어져 있다. (n ≤ 123456) 입력의 마지막에는 0이 주어진다. 출력 각 테스트 케이..
<자바스크립트 기초> 17. 마우스 이벤트 * 마우스 이동 이벤트 - CSS로 3D 처리된 공간을 좀 더 인터랙티브하게 보이기위해 마우스의 이동에 따라 각도가 조금씩 변하게 만들어보자. 즉 다음 그림과 같이 만들어볼 것이다. - 위와 같은 처리를 위해 다음과 같이 생각할 수 있다. ① 이벤트 리스너에 mousemove 를 사용한다. ② 이벤트 리스너에 함수를 넣고 거기에 객체를 통해 .clientX 와 .clientY 로 마우스의 좌표 값을 가져온다. ③ 마우스의 좌표를 적당하게 사용하기 위해 끝에서 끝까지를 -1에서 +1까지 숫자로 나타내어 사용할 것이다. 이는 창의 전체에서 좌표의 비율을 사용하면 가능할 것이다. ④ 3D가 적용된 공간의 스타일객체에 transform 속성에 rotateX와 rotateY를 입력한다. - 위를 코드로 나타내어 ..
<수학2> 1929번 소수 구하기 with 파이썬 문제 M이상 N이하의 소수를 모두 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 자연수 M과 N이 빈 칸을 사이에 두고 주어진다. (1 ≤ M ≤ N ≤ 1,000,000) M이상 N이하의 소수가 하나 이상 있는 입력만 주어진다. 출력 한 줄에 하나씩, 증가하는 순서대로 소수를 출력한다. 정답비율 27.379% 이 문제를 보고 앞의 문제와 똑같이 소수를 구하면 될것이라고 생각하였다. 물론 정답비율과 더 넓어진 범위, 그리고 짧은 제한시간이 마음에 걸렸다. 어쨋든 기존과 같은 방식으로 숫자 하나하나를 2부터 그 숫자까지 나눠가며 약수가 있는지 체크하였다. 당연히 시간초과로 오답이 되었다. 그래서 생각한 두 번째 방식은 이렇다. 제곱근까지만 체크하여 시간을 반으로 줄여보자. 예를 들면 이렇다. 10이 소수..
<수학2> 2581번 소수 with 파이썬 문제 자연수 M과 N이 주어질 때 M이상 N이하의 자연수 중 소수인 것을 모두 골라 이들 소수의 합과 최솟값을 찾는 프로그램을 작성하시오. 예를 들어 M=60, N=100인 경우 60이상 100이하의 자연수 중 소수는 61, 67, 71, 73, 79, 83, 89, 97 총 8개가 있으므로, 이들 소수의 합은 620이고, 최솟값은 61이 된다. 입력 입력의 첫째 줄에 M이, 둘째 줄에 N이 주어진다. M과 N은 10,000이하의 자연수이며, M은 N보다 작거나 같다. 출력 M이상 N이하의 자연수 중 소수인 것을 모두 찾아 첫째 줄에 그 합을, 둘째 줄에 그 중 최솟값을 출력한다. 단, M이상 N이하의 자연수 중 소수가 없을 경우는 첫째 줄에 -1을 출력한다. 정답비율 39.106% M = int(inp..