[Python] 프로그래머스 - 배열의 길이에 따라 다른 연산하기
·
Algorithm
문제 설명정수 배열 arr 과 정수 n 이 매개변수로 주어집니다. arr의 길이가 홀수라면 arr의 모든 짝수 인덱스 위치에 n을 더한 배열을, arr의 길이가 짝수라면 arr의 모든 홀수 인덱스 위치에 n을 더한 배열을 return 하는 solution 함수를 작성해주세요.https://school.programmers.co.kr/learn/courses/30/lessons/181854  제한사항1 ≤ arr의 길이 ≤ 1,0001 ≤ arr의 원소 ≤ 1,0001 ≤ n ≤ 1,000 어떻게 접근할까? 1. arr의 길이가 홀수인지 짝수인지를 판별2. 인덱스 위치를 떨어뜨려서 생각해보기 3. 인덱스 위치에 n 을 더한 배열 인덱스 위치가 홀수-> arr 의 짝수 인덱스 위치 +n인덱스 위치가 짝수->..
[Python] 프로그래머스 해시-베스트 앨범
·
Algorithm
문제 설명스트리밍 사이트에서 장르 별로 가장 많이 재생된 노래를 두 개씩 모아 베스트 앨범을 출시하려 합니다. 노래는 고유 번호로 구분하며, 노래를 수록하는 기준은 다음과 같습니다.속한 노래가 많이 재생된 장르를 먼저 수록합니다.장르 내에서 많이 재생된 노래를 먼저 수록합니다.장르 내에서 재생 횟수가 같은 노래 중에서는 고유 번호가 낮은 노래를 먼저 수록합니다.노래의 장르를 나타내는 문자열 배열 genres와 노래별 재생 횟수를 나타내는 정수 배열 plays가 주어질 때, 베스트 앨범에 들어갈 노래의 고유 번호를 순서대로 return 하도록 solution 함수를 완성하세요.  제한사항genres[i]는 고유번호가 i인 노래의 장르입니다.plays[i]는 고유번호가 i인 노래가 재생된 횟수입니다.genr..
[Python] 프로그래머스 해시 - 의상
·
Algorithm
문제https://school.programmers.co.kr/learn/courses/30/lessons/42578 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 코니는 매일 다른 옷을 조합하여 입는것을 좋아합니다. 예를 들어 코니가 가진 옷이 아래와 같고, 오늘 코니가 동그란 안경, 긴 코트, 파란색 티셔츠를 입었다면 다음날은 청바지를 추가로 입거나 동그란 안경 대신 검정 선글라스를 착용하거나 해야합니다.종류이름종류이름얼굴동그란안경, 검정선글라스상의파란색 티셔츠하의청바지겉옷긴 코트 코니는 각 종류별로 최대 1가지 의상만 착용할 수 있습니다. 예를 들어 위..
[Python] 프로그래머스 해시- 전화번호 목록
·
Algorithm
https://school.programmers.co.kr/learn/courses/30/lessons/42577 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 문제전화번호부에 적힌 전화번호 중, 한 번호가 다른 번호의 접두어인 경우가 있는지 확인하려 합니다.전화번호가 다음과 같을 경우, 구조대 전화번호는 영석이의 전화번호의 접두사입니다.구조대 : 119박준영 : 97 674 223지영석 : 11 9552 4421전화번호부에 적힌 전화번호를 담은 배열 phone_book 이 solution 함수의 매개변수로 주어질 때, 어떤 번호가 다른 번호의 접두어인 경우..
[Python] 프로그래머스 알고리즘 해시- 완주하지 못한 선수
·
Algorithm
효율성을 생각하게 된 계기... 알고리즘 문제는 그냥 풀기만 하면 될 줄 알았는데 효율성도 생각해야한다는 것을 깨달았다. ..이번 문제는 풀기는 간단하게 풀었지만 문제를 제출하자 효율성에서 통과하지 못했고 문제를 틀렸다고 간주하였다... 이걸 해결하는 과정에서 효율성에 대해 생각해볼 수 있었다.   문제수많은 마라톤 선수들이 마라톤에 참여하였습니다. . 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다. 마라톤에 참여한 선수들의 이름이 담긴 배열 participant 와 완주한 선수들의 이름이 담긴 배열 completion 이 주어질 때, 완주하지 못한 선수의 이름을 return 하도록 solution 함수를 작성해주세요. 제한사항마라톤 경기에 참여한 선수의 수는 1명 이상 100,000..
[Python] 프로그래머스 알고리즘 해시 - 폰켓몬
·
Algorithm
https://school.programmers.co.kr/learn/courses/30/lessons/1845 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 문제설명당신은 폰켓몬을 잡기 위한 오랜 여행 끝에, 홍 박사님의 연구실에 도착했습니다. 홍 박사님은 당신에게 자신의 연구실에 있는 총 N 마리의 폰켓몬 중에서 N/2마리를 가져가도 좋다고 했습니다.홍 박사님 연구실의 폰켓몬은 종류에 따라 번호를 붙여 구분합니다. 따라서 같은 종류의 폰켓몬은 같은 번호를 가지고 있습니다. 예를 들어 연구실에 총 4마리의 폰켓몬이 있고, 각 폰켓몬의 종류 번호가 [3번, ..
[DAY 14] 백준 2033번 - 반올림
·
Algorithm/항해일지 TIL
문제https://www.acmicpc.net/problem/2033 1. 문제 설명10의 자리 숫자이면 1의 자리에서 반올림100의 자리 숫자이면 10의 자리에서 반올림처음 생각한 코드def round_number(n): if n  > 이걸 보니까 ... 문제를 이해하는 게 제일 중요하다고 생각했다 ㅠㅠ일단 정말 정말 간단한 문제라고 생각했고 그냥 길이에 맞춰서 반올림하면 되는거 아닌가?? 라고 생각했는데 계속 ~~틀리는거다..하정말 답답했음 ㅠㅠ 내가 간과했던 것은-> 반복문을 사용하지 않음 -> 다음 자리수로 넘어가지 않음-> 조건에 해당하는지를 검토하지 않음.. 이정도가 될 것 같다. ㅠㅠ  코드 자체는 복잡하지 않은데 문제를 이해하는데 꽤나 오랜시간이 걸렸다.. ㅠ ㅁ ㅠ  제출한 코드N ..
[DAY 13] 프로그래머스 가운데 글자 가져오기 / 슬라이싱
·
Algorithm/항해일지 TIL
문제 https://school.programmers.co.kr/learn/courses/30/lessons/12903 1. 코드 설명 두글자 반환하기=> 가운데 앞뒤글자라고 생각하기 글자 수가 짝수와 홀수일때 글자수 나누기 두글자 인덱싱하기 2. 핵심 내용 슬라이싱 : 시퀀스 데이터의 특정 범위를 지정하여 해당 범위에 있는 요소들을 가져올 수 있음 s = "Hello, World!" print(s[0:5]) # "Hello" print(s[7:12]) # "World" print(s[:5]) # "Hello" (start를 생략하면 처음부터 시작) print(s[7:]) # "World!" (stop을 생략하면 끝까지) print(s[::2]) # "Hlo ol!" (step을 2로 지정하여 홀수 인덱..
[DAY 11] 프로그래머스 없는 숫자 더하기
·
Algorithm/항해일지 TIL
문제 https://school.programmers.co.kr/learn/courses/30/lessons/86051 1. 코드 설명 없는 숫자 더하기 = > 정답의 리스트를 주고 그 리스트에 없으면 없는 숫자이므로 빈 리스트에 더해주면 되지 않을까? 2. 코드 실행 // 첫번째 시도 def solution(numbers): total = 0 find = [0,1,2,3,4,5,6,7,8,9] for i in find: if i not in numbers: total += i return total 그런데 생각해보니... 0부터 9까지 이면 굳이 리스트로 만들지 않아도 된다는 게 번뜩 생각났다. -_ - // 두번째 시도 def solution(numbers): total = 0 for i in ran..
[DAY 10] 프로그래머스 평균 구하기 / SUM
·
Algorithm/항해일지 TIL
문제 https://school.programmers.co.kr/learn/courses/30/lessons/12944 1. 코드 설명 평균 구하는 법 = 각 숫자 다 더하기 / 각 숫자 갯수 2. 중요한 개념 ※ SUM --> 리스트나 튜플 처럼 인덱스 내에서 순환, 접근이 가능한 자료형이여야 하고 내부에 숫자로만 이루어져 있어야 한다. --> 결과값: 인자로 들어온 내부의 모든 요소의 합 3. 코드 실행 // 첫번째 시도 def solution(arr): s = 0 for i in arr: s += i total = s / len(arr) return total 처음엔 이렇게 엄청 간단하게 생각했다. 물론 틀린 코드는 아니지만 조금 더 쉬운 코드가 없을까.. 하다가 sum 이 생각났따 ㅠ.ㅠ // 두..
하이롱하이롱
'Algorithm' 카테고리의 글 목록 (2 Page)