Algorithm144 [프로그래머스] 멀쩡한 사각형 /파이썬 /python /최소공약수 💡solutions ) ✅ 공식을 못 찾겠어서 다른 분들 풀이를 참고했다. 대각선에 걸쳐지는 정사각형의 개수는 "w+h - (w*h - w와h의 최소공약수)" ✅ math 모듈을 사용해 최소공약수(gcb)를 구할 수도 있지만 직접 함수를 구현했다. 🎫code ) def solution(w, h): def getGcd(w,h): if (h == 0): return w return getGcd(h, w % h) return w * h - (w + h - getGcd(w, h)) 📌 description ) 문제 출처 : https://programmers.co.kr/learn/courses/30/lessons/62048?language=python3 코딩테스트 연습 - 멀쩡한 사각형 가로 길이가 Wcm, 세.. 2020. 8. 7. [프로그래머스] 스킬트리 / 파이썬 / python 💡solutions ) ✅ 공백이 없는 문자열을 하나씩 끊어서 리스트 요소로 만들 때는 list(str) 사용하기 str = "abc", list(str) = ["a", "b", "c"] (단, 공백 있으면 split 사용) ✅ skill에 있는 것들만 모아서 tmp에 담고 skill리스트와 tmp리스트 값 비교하기 ✅ 길이가 같은 경우는 바로 cnt + 1, 다른 경우에는 첫 번째부터 값을 비교하기 -> 문제 푼 후에 skill 리스트의 pop(0)값 하고만 비교하면 된다는 걸 알았다. (맨 앞을 선행하지 않는다는 건, 결국 가능한 스킬트리가 아니기 때문) 🎫code ) def solution(skill, skill_trees): skill = list(skill) cnt = 0 for st in sk.. 2020. 8. 6. [프로그래머스] 오픈채팅방 / 파이썬 / python / 딕셔너리 배열 💡solutions_ ✅ 모든 유저의 닉네임을 저장하는 name_list 딕셔너리(key는 고유한 유저아이디로, value는 닉네임으로 저장), 유저들의 행동(입장, 퇴장)을 저장하는 action_list 리스트, 최종 결과 값을 저장하는 result 리스트 만듬 ✅ 각 입력값은 '행동 유저아이디 닉네임' 순으로 공백을 기준으로 split ! ✅ 두 가지 if문 ① 이름을 변경하는 경우인지 확인 -> enter, change -> name_list에 새로 이름 생성하거나 이름 변경하기 ② 들어오거나 나가는 경우인지 확인 -> enter, leave -> action_list에 행동 기록하기 🎫code_ def solution(records): name_list = {} action_list = [] re.. 2020. 8. 5. [프로그래머스] 소수찾기 / Python / 효율성 테스트 ✔ 문제 설명 - 1부터 입력받은 숫자 n 사이에 있는 소수의 개수를 반환하는 함수, solution을 만들어 보세요. - 소수는 1과 자기 자신으로만 나누어지는 수를 의미합니다.(1은 소수가 아닙니다.) ✔ 제한 조건 - n은 2이상 1000000이하의 자연수입니다. 아래는 처음 제출한 코드이다. 효율성 테스트에서 통과하지 못하고 시간초과. def solution(n): answer = 0 arr = [0] * (n+1) for i in range(2, n+1): if arr[i] == 1: continue for k in range(2, i+1): if i % k == 0: if i != k: arr[i] = 1 break else: answer += 1 for j in range(i, n+1, i).. 2020. 7. 14. 0608_백준 1051번 : 숫자 정사각형/ 부르트포스 알고리즘/ Python [코드 구현] n, m = map(int, input().split()) arr = [list(map(int, input())) for _ in range(n)] res = 0 for i in range(n): for j in range(m): for k in range(n if n < m else m): # 행과 열 중 더 작은 것을 기준으로 정사각형 탐색 if i+k < n and j+k < m: # 주어진 인덱스 벗어나지 않게 if arr[i][j] == arr[i][j+k] == arr[i+k][j] == arr[i+k][j+k]: # 꼭짓점의 숫자가 모두 같은 지 확인 if res < k: res = k print((res+1)*(res+1)) [문제 출처] 백준 1051번 숫자 정사각형 : h.. 2020. 6. 8. 0529_백준 15684번 : 사다리 조작/ 완전탐색(Brute-Force)/ Python [문제 접근] - 브루트포스(완전탐색) 문제 - 사다리를 놓는 함수와 사다리를 놓은 후 모든 세로선이 자기 번호로 도착하는 지 확인하는 함수 두 가지로 프로그램을 짰다. [코드 구현] # 사다리에 가로선을 놓는 함수 def dfs(start, cnt): global res if cnt == min_cnt: if check(): res = cnt return for i in range(start, h): for j in range(n-1): # ij 위치에 사다리가 있지 않고, 전후로도 사다리가 없으면 if not ladder[i][j-1] + ladder[i][j] + ladder[i][j+1]: # 사다리 놓기 ladder[i][j] = 1 dfs(i, cnt+1) # 함수 재귀 끝나면 사다리 다시 빼.. 2020. 5. 29. 이전 1 ··· 17 18 19 20 21 22 23 24 다음