구현 26

[14499] 주사위 굴리기 in python

문제출처 https://www.acmicpc.net/problem/14499 14499번: 주사위 굴리기 첫째 줄에 지도의 세로 크기 N, 가로 크기 M (1 ≤ N, M ≤ 20), 주사위를 놓은 곳의 좌표 x, y(0 ≤ x ≤ N-1, 0 ≤ y ≤ M-1), 그리고 명령의 개수 K (1 ≤ K ≤ 1,000)가 주어진다. 둘째 줄부터 N개의 줄에 지 www.acmicpc.net in Java HTML 삽입 미리보기할 수 없는 소스 주사위 회전 시 주사위의 윗면, 앞면, 오른쪽면을 각각 1,2,3 으로 숫자를 지정해준다. 그러면 필연적으로 아랫면, 뒷면, 왼쪽면은 각각 6, 5, 4가 되어야한다. 왜냐하면 일반적인 주사위는 마주보는 양면의 합이 7이 되어야하기 때문이다. 이를 이용하면 쉽게 문제를 ..

[n1531] 투명 in python

왼쪽 아래 모서리, 오른쪽 위 모서리 좌표라고 해서 오른쪽 위 모서리 y좌표의 값이 왼쪽 아래 모서리 y좌표의 값보다 항상 작은 줄 알았으나 그게 아니었다! x,y 그래프를 생각했어야했다 n, m = map(int, input().split()) array = [[0 for _ in range(101)] for _ in range(101)] for _ in range(n): x1, y1, x2, y2 = map(int, input().split()) # 왼쪽 아래 모서리, 오른쪽 위 모서리 좌표 for i in range(y1, y2 + 1): for j in range(x1, x2 + 1): array[j][i] += 1 answer = 0 for i in range(101): for j in rang..

카테고리 없음 2021.11.25

[n12760] 최후의 승자는 누구? in python

단순 구현문제! 가장 큰 수를 가진 플레이어가 여러명일 수 있다는 조건을 빼먹고 구현하다가 시간을 많이 버린 문제; n, m = map(int, input().split()) array = [] for i in range(n): temp = sorted(list(map(int, input().split()))) array.append(temp) answer = [0 for _ in range(n)] for i in range(m): temp = [] for j in range(n): temp.append(array[j][i]) maxnum = max(temp) for j in range(n): if maxnum == temp[j]: answer[j] += 1 player = max(answer) resu..

[n16935] 배열 돌리기 3 in python

전형적인 구현 문제! 3번 , 4번 연산에서 연산 후 바뀐 행과 열의 값을 바꿔주지 않아서 오류가 났었다! 1,2번 연산에서는 단순히 상하좌우 대칭만 하는거라 굳이 이 과정이 필요 없다 하지만 회전하는 부분에서는 이 과정이 필수 +_+ def func(num): global array, n,m # 1번 연산 -> 배열을 상하반전 if num == 1: temp = [] for i in range(n): temp.append(array[n - 1 - i]) array = temp del temp return # 2번 연산 -> 배열 좌우반전 if num == 2: temp = [] for i in range(n): temp.append(array[i][::-1]) array = temp del temp r..

[n9742] 순열 in python

재귀함수 너무 어렵다 ㅠㅠ.. 매번 풀어도 헷갈리고 적응 안되는 것들 중 하나가 재귀함수 :( 너무 지저분하게 코드를 짠 것 같아서 좀 더 고민해보고 찾아봐야겠다 ㅠㅠ 일단은 for문 안에서 1차적으로 첫번째 숫자를 고른 뒤 permu 함수를 실행한다. permu 함수 내에서 for문을 또 따로 돌려주고 그 안에서 재귀함수를 호출하여 순열을 찾아나가면 된다. 만약 현재 값이 입력값과 개수가 똑같고 answer_num이 n과 같다면? 답을 찾은것이다! answer_num = 0 answer = '' def permu(n, cnt): global answer_num global answer if len(answer) == len(word): answer_num += 1 if answer_num == n: r..

[n1855] 암호 in python

처음엔 주어진 문자열을 암호화하는 줄 알고 구현을 해서 시간이 좀 걸렸다. 그러나 암호화되어 있는 문자열을 원래의 문자열로 출력하는 문제였던 것..! 열은 입력값으로 주어졌다 행은 전체 문자열을 열로 나눈 값으로 정했다. aei | jfb | cgk | lhd 1번째(aei) , 3번째(cgk)는 왼쪽 -> 오른쪽으로 판별해서 a는 array[0]에 넣고 e는 array[1]에 넣고 i는 array[2]에 넣는식으로 cgk도 넣어준다. 2번째 (jfb), 4번째(lhd)는 오른쪽->왼쪽순으로 각각의 값을 array 배열에 넣어준다. j는 array[2]에 넣고 f는 array[1]에 b는 array[0]에 그러면 array=[ [a,b,c,d], [e,f,g,i], [i,j,k,l], ] 이런식으로 자리..

[n15722] 빙글빙글 스네일 in python

빙글빙글 움직일 때 위 1칸, 오른쪽 1칸, 아래 2칸, 왼쪽 2칸, 위 3칸, 오른쪽 3칸 ... 이동하는 걸 보면 규칙을 찾을 수 있다. 그래서 위, 오른쪽 처리는 upRight() 함수가 해주고 아래, 왼쪽 이동 처리는 downLeft() 함수가 처리해준다. 여기서는 dx,dy의 값을 반대로 뒤집어줘야함! 위로 올라가면 y의 값이 +1 되어야하고 아래로 내려가면 y의 값이 -1이 되어야하기 때문이다. n=int(input()) # 위, 오른쪽, 아래, 왼쪽 dx=[0,1,0,-1] dy=[1,0,-1,0] x=0 y=0 num=0 def upRight(): global x,y,n,num num+=1 for _ in range(num): # 위 x += dx[0] y += dy[0] n -= 1 if..