분류 전체보기 562

[n1755] 숫자 놀이 in python

sorted, lambda, dictionary를 이용해서 풀 수 있었던 정렬 및 문자열 문제! 리스트에 숫자와 문자를 같이 넣어주는 생각을 바로 떠올리지 못했음! m, n = map(int, input().split()) dic = {'1': 'one', '2': 'two', '3': 'three', '4': 'four', '5': 'five', '6': 'six', '7': 'seven', '8': 'eight', '9': 'nine', '0': 'zero'} temp = [] answer = [] for i in range(m, n + 1): answer.append([i, ''.join(dic[k] for k in str(i))]) answer.sort(key=lambda x:x[1]) for i..

[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..

[n15965] k번째 소수 in python

무작정 for문을 돌리게 되면 시간초과가 날 것 같았다. 그래서 에라토스테네스의체를 이용하여 문제를 풀었다. 에라토스테네스의 체에 대한 이해 먼저 해야하는데 https://wikidocs.net/21638 2. 소수 구하기 - 에라토스테네스의 체 # 소수 : 1과 그 수 자신 이외의 자연수로는 나눌 수 없는 자연수이다. # 코딩 소수인지 검사하는 함수(isPrime)를 만든다. 1부터 100 사이의 소수를 구하는 ... wikidocs.net 위 링크를 참고하면 좋을 것 같다. 리스트를 하나 생성한다. 그리고 2부터 시작해서 2의 배수는 모두 지우고 3의 배수 모두 지우고 5의 배수 모두 지우고 ... 이런식으로 소수의 배수들을 모두 지워준다. k = int(input()) array = [1 for _..

카테고리 없음 2021.11.09

[n8394] 악수 in python

예제문제를 보다보니 점화식이 보였다 n=1일땐 1 n=2일땐 2 n=3일땐 3(1+2) n=4일땐 5 (2+3) n=5일땐 8 (3+5) 수가 매우 커질 수 있기 때문에, 마지막 자리만 출력한다. > dp[-1]%10을 해줘야 올바른 출력값이 나오게 된다. n = int(input()) dp = [0 for _ in range(n + 1)] dp[1] = 1 dp[2] = 2 for i in range(3, n + 1): dp[i] = dp[i - 1] % 10 + dp[i - 2] % 10 print(dp[-1]%10) 시간이 오래 걸려서 더 좋은 코드를 찾아보았다. dp 배열을 쓰지 않아도 변수 2개로 충분히 구할 수 있었다. (스왑) 그리고 %60을 왜 써주는 지 아직 잘 모르겠지만.. 좀 더 연구..

[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], ] 이런식으로 자리..

[n14425] 문자열 집합 in python

문자열 문제! 아래 코드는 시간초과가 떴다. 그래서 리스트 대신 set 자료구조를 이용해서 돌려보았더니 시간 초과 문제가 해결되었다! 저번 문제에서도 느꼈지만 다루는 데이터의 수가 커질수록 리스트의 연산시간은 길어진다. (이럴 땐 사용 지양) import sys input=sys.stdin.readline n, m = map(int, input().split()) sArr = [input() for _ in range(n)] cnt=0 for _ in range(m): temp = input() for i in range(n): if temp == sArr[i]: cnt+=1 print(cnt) 아래 코드는 시간초과 x 무난하게 통과하였다! import sys input=sys.stdin.readline..

카테고리 없음 2021.11.05