전체 글 86

[파이썬] 백준 7113 Rectangle

https://www.acmicpc.net/problem/7113 7113번: Rectangle Vilibald has decided to cut a right-angled checked page of size n×m cells into squares. First of all he cut off the largest possible square using a straight cut. Then he took away the square and repeated the action with the remaining rectangle. In this wa www.acmicpc.net 3 7 정사각형을 자르는 프로세스를 숫자로 나타내면 n m 3 7 3 4 3 1 2 1 1 1 이다 즉, 둘중에 높은 값에서 낮은..

[자바스크립트] this

This 어떠한 오브젝트를 가리키는 키워드 (자바에서의 this와 파이썬에서의 self는 인스턴스 자기자신을 가리킴) 자바스크립트의 함수는 호출될때 this 를 암묵적으로 전달받음 자바스크립트의 this는 일반적인 프로그래밍 언어에서의 this와 조금 다르게 동작함 자바스크립트는 함수 호출 방식에 따라 this 바인딩 되는 객체가 달라짐 함수를 선언할 때 this에 객체가 결정되는 것이 아니고, 함수를 호출할 때 함수가 어떻게 호출되었는지에 따라 동적으로 결정됨 브라우저의 전역 객체인 window를 가리킨다. (전역 객체는 모든 객체의 유일한 최상위 객체를 의미함) console.log(this) //window 함수의 this 키워드는 다른 언어와 조금 가르게 동작 this의 값은 함수를 호출한 방법에..

JavaScript 2022.10.25

[파이썬] SWEA 3499 퍼펙트 셔플

https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AWGsRbk6AQIDFAVW SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 위 그림에 나온 단계 순서대로 알고리즘을 짰다 1) 카드 덱을 절반으로 나워서 각자 다른 리스트에 넣는다. T = int(input()) for tc in range(1, 1+T): n = int(input()) arr = list(input().split()) result = [] shuffle_bottom = arr[:((n-1)//2)+1] shuffle_top = arr[((n-1)//2)+..

[파이썬] SWEA 11718 사냥꾼

https://swexpertacademy.com/main/talk/solvingClub/problemView.do?contestProbId=AXhJSn_anL8DFAWQ&solveclubId=AYN4vh0aVUUDFAUs&problemBoxTitle=IM%EB%AC%B8%EC%A0%9C&problemBoxCnt=12&probBoxId=AYN5PuYKXHUDFAUs SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com N = int(input()) arr = [list(map(int, input().split())) for _ in range(N)] total_kills = 0 #상하좌우 및 대각선 8방향 dy = ..

[파이썬] 백준 5568 카드 놓기

https://www.acmicpc.net/problem/5568 5568번: 카드 놓기 예제 1의 경우 상근이는 11, 12, 21, 112, 121, 122, 212를 만들 수 있다. www.acmicpc.net 상근이가 만드는 순서가 상관 있기 때문에 순열 조합 중에서 순열으로 풀어야 한다. 또한, 같은 카드를 두번 고를 수는 없기 때문에, 중복이 아닌 순열으로 풀어야 한다. n = int(input()) k = int(input()) arr = [] for _ in range(n): number = int(input()) arr.append(number) # print(arr) path = [0]*(k+1) used = [0]*len(arr) check = [] 전체 카드 수, 선택할 카드 수, ..

[파이썬] 백준 17478 재귀함수가 뭔가요?

https://www.acmicpc.net/problem/17478 17478번: 재귀함수가 뭔가요? 평소에 질문을 잘 받아주기로 유명한 중앙대학교의 JH 교수님은 학생들로부터 재귀함수가 무엇인지에 대하여 많은 질문을 받아왔다. 매번 질문을 잘 받아주셨던 JH 교수님이지만 그는 중앙대 www.acmicpc.net N=2 일때의 답을 보면, 어느 한 컴퓨터공학과 학생이 유명한 교수님을 찾아가 물었다. "재귀함수가 뭔가요?" "잘 들어보게. 옛날옛날 한 산 꼭대기에 이세상 모든 지식을 통달한 선인이 있었어. 마을 사람들은 모두 그 선인에게 수많은 질문을 했고, 모두 지혜롭게 대답해 주었지. 그의 답은 대부분 옳았다고 하네. 그런데 어느 날, 그 선인에게 한 선비가 찾아와서 물었어." ____"재귀함수가 뭔가..

[파이썬] 백준 1316 그룹 단어 체커

https://www.acmicpc.net/problem/1316 1316번: 그룹 단어 체커 그룹 단어란 단어에 존재하는 모든 문자에 대해서, 각 문자가 연속해서 나타나는 경우만을 말한다. 예를 들면, ccazzzzbb는 c, a, z, b가 모두 연속해서 나타나고, kin도 k, i, n이 연속해서 나타나기 때 www.acmicpc.net 1) 단어가 연속되는지를 확인하고 전에 쓰인 단어가 또 쓰였는지 확인해야 하기 때문에, used 라는 배열을 새로 만든다. N = int(input()) group_word_cnt = 0 for tc in range(N): word = input() used = [0]*200 2) for문을 돌면서 앞 글자랑 비교를 할 거기 때문에, 일단 단어의 첫 글자는 used..

[파이썬] 백준 10944 별 찍기 -19

https://www.acmicpc.net/problem/10994 10994번: 별 찍기 - 19 예제를 보고 규칙을 유추한 뒤에 별을 찍어 보세요. www.acmicpc.net 아래 그림처럼, 2일때 맨 첫줄은 별이 5개 3일때는 첫줄 별이 9개 임을 알 수 있다. n일때는 첫 줄 별이 4n-3 개 이다. 그리고, 3에서 맨 바깥쪽 테투리 별들을 빼면, 그 결과가 2를 입력했을때의 결과랑 완전히 동일하다는 것을 확인할 수 있다. 이 부분을 재귀로 구현하면 된다. 즉, 재귀함수에서 1) 맨 바깥쪽 별 그려주기 2) 그보다 y+2, x+2인 위치부터 그 전 별 그린 것들 똑같이 출력 (재귀) def rcr(n, y, x): #입력값, 시작점y, 시작점x M1 = 4*n-3 #가로, 세로 길이 if n

[파이썬] SWEA 12712 파리퇴치3 (for 문으로 풀기)

https://swexpertacademy.com/main/code/userProblem/userProblemDetail.do?contestProbId=AXuARWAqDkQDFARa& SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com while 문 풀이 https://gkim1011.tistory.com/m/45 [파이썬] SWEA 12712 파리퇴치3 (while 문으로 풀기) https://swexpertacademy.com/main/code/userProblem/userProblemDetail.do?contestProbId=AXuARWAqDkQDFARa SW Expert Academy SW 프로그래밍 역량 ..

[파이썬] SWEA 12712 파리퇴치3 (while 문으로 풀기)

https://swexpertacademy.com/main/code/userProblem/userProblemDetail.do?contestProbId=AXuARWAqDkQDFARa SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 그림에 그린 순서대로 상하좌우 다이렉트 배열을 만들고, 벽과 만나지 않으면 k를 1씩 추가하면서 M만큼 더한다. def kill1(y, x): global total1 dy = [-1, 1, 0, 0] dx = [0, 0, -1, 1] k = 0 # idx = 0 total1 += arr[y][x] while kMAX: MAX = total2 print(f'#{tc} {MAX}')