본문 바로가기

Programmers/programmers14

[프로그래머스] 리스트 생성 방식 def solution(answers): p = [[1, 2, 3, 4, 5], [2, 1, 2, 3, 2, 4, 2, 5], [3, 3, 1, 1, 2, 2, 4, 4, 5, 5]] s = [0] * len(p) for q, a in enumerate(answers): for i, v in enumerate(p): if a == v[q % len(v)]: s[i] += 1 return [i + 1 for i, v in enumerate(s) if v == max(s)]​ def solution(answers): answer = [[0,1],[0,2],[0,3]] list_1 = [1, 2, 3, 4, 5] * (len(answers)//5 +1) list_2 = [2, 1, 2, 3, 2, 4, 2, .. 2024. 1. 29.
[프로그래머스] 덧칠하기 .기준의 중요성. 무엇을 기준으로 잡을 것인가. https://school.programmers.co.kr/learn/courses/30/lessons/161989 def solution(n, m, section): answer = 1 standard = section[0] for i in range(1,len(section)): if section[i] - standard < m: continue else: answer += 1 standard = section[i] return answer 기준을 무엇으로 잡을 것인가. 처음에, section[i] - section[i-1] 로 풀어나가면서 기준을 제대로 잡지 못하니 계속 헤맸다. 기준점을 잡고 현재 숫자에서 기준이 되는 숫자를 빼고, 그것이 롤러의 길이보다 크거나 같을 경우에만 answer에 + .. 2024. 1. 29.
[프로그래머스]set을 이용하여 중복을 제거하기/ 집합 A-B의 연산 def solution(l, r): answer = [] for i in range(l,r+1): if str(i).count("0") + str(i).count("5") == len(str(i)): answer.append(i) if len(answer) == 0 : return [-1] return answer def solution(l, r): answer = [] for num in range(l, r + 1): if not set(str(num)) - set(['0', '5']): answer.append(num) return answer if answer else [-1] set(str(num)) 숫자 650이 set(str(num))을 거치면 중복된 숫자를 제외하고 {"6","5","0"}이.. 2023. 12. 21.
[프로그래머스]로그인 성공? 파이썬 // 왈러스 연산자 , 변수초기화의 중요성. 실패코드 def solution(id_pw, db): for idpw in db: if idpw[0] == id_pw[0]: if idpw[1] == id_pw[1]: answer = "login" else: answer = "wrong pw" else: answer = "fail" return answer 체점결과, 1번 테스트케이스 실패. 반례> 입력값 〉 ["abc04", "345"], [["abc04", "335"], ["abc03", "345"]] 기댓값 〉 "wrong pw" 순서에 있어서 우선순위가 있는 것이 반례라고 한다. 성공코드(continue 사용해서 수정) def solution(id_pw, db): for idpw in db: if idpw[0] == id_pw[0]: if idp.. 2023. 12. 11.
[프로그래머스]직사각형 넓이 구하기 파이썬 // 2차원 배열 sorted def solution(dots): return (max(dots)[0] - min(dots)[0])*(max(dots)[1] - min(dots)[1])​ 주어진 점들 중에서 x와 y 좌표 각각에서 가장 큰 값과 가장 작은 값을 사용하여 사각형의 넓이를 계산한다. def solution(dots): dots = sorted(dots) return abs(dots[2][0]-dots[1][0]) * abs(dots[1][1]-dots[2][1]) 주어진 점들을 sort로 정렬하고, 정렬된 순서대로 인덱싱하여 사각형의 넓이를 계산합니다. 두가지 풀이법. sorted가 2차원 배열에도 적용할 수 있다는 것을 알았다. 2023. 12. 11.
[프로그래머스] 파이썬//반복문 구조 파악. while을 써야 할 것 같다고 생각하면서도, 아래와 같은 코드로 테스트 케이스를 통과하니 정답 코드를 작성한 것 같았다. def solution(arr): a = len(arr[0]) b = len(arr) if a b: for i in range(a-b): arr.append([0]*(a)) else: return arr return arr 반례가 있었다. # 반례 # 입력값 > [[1, 1], [1, 1], [1, 1], [1, 1]] # # 기댓값 > [[1, 1, 0, 0], [1, 1, 0, 0], [1, 1, 0, 0], [1, 1, 0, 0] start = 1 while a 2023. 12. 11.