본문 바로가기

분류 전체보기411

[Python] 프로그래머스 : 서울에서 김서방 찾기 https://programmers.co.kr/learn/courses/30/lessons/12919 코딩테스트 연습 - 서울에서 김서방 찾기 String형 배열 seoul의 element중 "Kim"의 위치 x를 찾아, "김서방은 x에 있다"는 String을 반환하는 함수, solution을 완성하세요. seoul에 "Kim"은 오직 한 번만 나타나며 잘못된 값이 입력되는 경우는 없습니 programmers.co.kr 문제 풀이 간단한 출력문제이다. 느낀 점 코드 def solution(seoul): idx = seoul.index('Kim') return f'김서방은 {idx}에 있다' 2022. 7. 1.
[알고리즘] 에라토스테네스의 체 알고리즘 문제 중에 소수 문제가 간혹 등장한다. 소수란, 1보다 큰 자연수 중에 1과 자기 자신만을 약수로 가지는 수이다. 어떤 수(N) 가 소수인지 확인하기 위해선 2부터 N-1까지의 모든 수로 나누어지지 않으면 소수인지 확인할 수 있다. def isPrime(N): for i in range(2, N): if N % i == 0: return False return True 정석의 코드를 예시로 들어봤다! 하지만 위의 코드로 넓은 범위의 수를 모두 확인하려면 많은 시간이 걸리게 된다. 이때 사용하는 알고리즘이 바로 에라토스테네스의 체이다! ✨ 에라토스테네스의 체란? 고대 그리스 수학자 에라토스테네스가 만든 소수를 찾는 방법으로 마치 체로 수를 걸러내는 것과 같아서 에라토스테네스의 체라고 부른다. 소수.. 2022. 7. 1.
[Python] 프로그래머스 : 체육복 https://programmers.co.kr/learn/courses/30/lessons/42862 코딩테스트 연습 - 체육복 점심시간에 도둑이 들어, 일부 학생이 체육복을 도난당했습니다. 다행히 여벌 체육복이 있는 학생이 이들에게 체육복을 빌려주려 합니다. 학생들의 번호는 체격 순으로 매겨져 있어, 바로 앞번 programmers.co.kr 문제 풀이 탐욕법으로 푸는 문제이다. 주어진 조건을 보면 여벌의 체육복을 가져온 학생도 도난을 당할 수가 있다. 따라서, lost 배열에서도 reserve 배열에서도 서로 존재 여부를 확인하고 빼줘야한다. 보통 순회를 할 때 왼쪽에서 오른쪽으로 이동하기 꼭 왼쪽 값부터 확인해야한다. 그렇기 때문에 정렬을 해줘야한다. 정렬 하지 않는다면 lost = [1,2] re.. 2022. 6. 30.
[Python] 프로그래머스 : 수식 최대화 https://programmers.co.kr/learn/courses/30/lessons/67257?language=python3 코딩테스트 연습 - 수식 최대화 IT 벤처 회사를 운영하고 있는 라이언은 매년 사내 해커톤 대회를 개최하여 우승자에게 상금을 지급하고 있습니다. 이번 대회에서는 우승자에게 지급되는 상금을 이전 대회와는 다르게 다음과 programmers.co.kr 문제 풀이 두 가지 방법으로 풀었다. 1. 우선순위에 따라 후위 표기식으로 전환해 계산 (코드 1) 2. 분할 정복을 통해서 계산 (코드 2) 풀이1 문제를 보자마자 뭔가 스택으로 풀어야 할 것 같은 느낌에 바로 떠오른 것은 후위 표기법이다. 표현식에 주어진 연산자에 따른 우선순위를 만들고 우선순위에 따라 후위 표기식으로 전환한 .. 2022. 6. 30.
[Python] 프로그래머스 : 거리두기 확인하기 https://programmers.co.kr/learn/courses/30/lessons/81302?language=python3 코딩테스트 연습 - 거리두기 확인하기 [["POOOP", "OXXOX", "OPXPX", "OOXOX", "POXXP"], ["POOPX", "OXPXP", "PXXXO", "OXXXO", "OOOPP"], ["PXOPX", "OXOXP", "OXPOX", "OXXOP", "PXPOX"], ["OOOXX", "XOOOX", "OOOXX", "OXOOX", "OOOOO"], ["PXPXP", "XPXPX", "PXPXP", "XPXPX", "PXPXP"]] [1, 0, 1, 1, 1] programmers.co.kr 문제 풀이 BFS로도 풀 수 있지만 크기가 5로 고정되어있어.. 2022. 6. 26.
[Python] 백준 2559번 : 수열 https://www.acmicpc.net/problem/2559 2559번: 수열 첫째 줄에는 두 개의 정수 N과 K가 한 개의 공백을 사이에 두고 순서대로 주어진다. 첫 번째 정수 N은 온도를 측정한 전체 날짜의 수이다. N은 2 이상 100,000 이하이다. 두 번째 정수 K는 합을 구하기 www.acmicpc.net 문제 풀이 구간 합 문제이다! n부터 m만큼의 범위의 합 자체를 계산하는 것은 쉽다. 하지만 시간이 부족하다. 두 가지만 생각하면 된다. 1. sum()을 남발하면 느리다. 2. sum(arr[n:n+m])과 sum(arr[n+1:n+m+1])의 차이는 n번째 값과 n+m+1번째 값의 차이다. 느낀 점 그렇게 어렵지 않았지만 마지막 아이디어를 생각해내는데 시간이 조금 걸렸다! 풀어본 .. 2022. 6. 24.