분류 전체보기

    [2024 알고리즘 특강] 공항 방문수 (파이썬)

    문제XX 공항에서N 일동안매일공항방문객수를조사했습니다. 이때, 가장많은방문객수와두 번째로많은방문객수의차이를구하려고합니다. 단, 방문객의수가같은날은없다고 가정합니다.이를 위해 다음과 같이 4단계로 간단히 프로그램 구조를 작성했습니다.1. 입력으로 주어진 배열에서 가장 많은 방문객 수를 찾습니다. 2. 1번 단계에서 찾은 값을제외하고, 나머지 값들로 이루어진 새로운 배열을 만듭니다.3. 2번 단계에서 만든 새로운 배열에서 가장 큰 방문객의 수를 찾습니다. 4. 1번 단계와 3번 단계에서 구한 값의 차이를 구합니다.N 일 동안의 방문객 수가 들어있는 배열 visitor가 매개변수로 주어질 때, 가장 많은 방문객 수와 두 번째로 많은 방문객 수의 차이를 return 하도록 solution 함수를 작성하세요. 입..

    [2024 알고리즘 특강] 가장 긴 팰린드롬 - 프로그래머스 (파이썬)

    [2024 알고리즘 특강] 가장 긴 팰린드롬 - 프로그래머스 (파이썬)

    https://school.programmers.co.kr/learn/courses/30/lessons/12904 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 문제앞뒤를 뒤집어도 똑같은 문자열을 팰린드롬(palindrome)이라고 합니다.문자열 s가 주어질 때, s의 부분문자열(Substring)중 가장 긴 팰린드롬의 길이를 return 하는 solution 함수를 완성해 주세요.예를들면, 문자열 s가 "abcdcba"이면 7을 return하고 "abacde"이면 3을 return합니다.제한사항- 문자열 s의 길이 : 2,500 이하의 자연수 - 문자열 s..

    [2024 알고리즘 특강] 문자열/회문 (파이썬)

    문제회문이란 어떤 단어를 앞으로 읽던 거꾸로 읽던 같은 단어 혹은 문장을 말합니다. 예를 들어 civic, radar, level, rotor, refer 같은 단어는 회문입니다. 소문자 알파벳, 공백(“ “), 마침표(.)로 이루어진 문장에서 알파벳만 추출하였을 때 회문이면 회문 문장이 됩니다. “never odd or even.”과 같은 문장은 회문입니다. 소문자 알파벳, 공백(“ “), 마침표(.)로 이루어진 문장이 회문인지 아닌지를 return 하는 solution 함수를 작성하세요. 입력sentencereturn"never odd or even"true"palindrome"false 예시 #1 알파벳과 숫자만 추출하여 소문자로 변환해보면 "neveroddoreven"이 되며 이 단어는 팰린드롬입..

    [이코테] 두 배열의 원소 교체 (파이썬)

    [이코테] 두 배열의 원소 교체 (파이썬)

    정답 n, k = map(int, input().split()) a = list(map(int, input().split())) b = list(map(int, input().split())) a.sort() b.sort(reverse=True) # 내림차순 for i in range(k): if a[i] < b[i]: a[i], b[i] = b[i], a[i] else: break print(sum(a)) 배운 점: 이 문제를 통해 파이썬 문법과 sort()에 대해 알게 되었다. sort()는 자동으로 오름차순으로 정리해주며 reverse=True를 입력하면 내림차순으로도 정렬이 가능하다. 또한 교체가 너무나도 간결하게 작성이 가능하다! 만약 a과 b값을 서로 교환하고 싶다면 이렇게 한 줄로 작성하면 ..

    [이코테] 정렬 알고리즘 코드 정리 (파이썬)

    array = [7, 5, 9, 0, 3, 1, 6, 2, 4, 8] # 선택 정렬 for i in range(len(array)): min_index = i # 가장 작은 원소의 인덱스 for j in range(i+1, len(array)): if array[min_index] > array[j]: min_index = j array[i], array[min_index] = array[min_index], array[i] # 스와프 print("선택 정렬 = ", array) # 삽입 정렬 for i in range(1, len(array)): for j in range(i, 0, -1): if array[j] < array[j-1]: # 한 칸씩 왼쪽으로 이동 array[j], array[j-1] ..

    [백준] 2667번 - 단지번호붙이기 (파이썬)

    [백준] 2667번 - 단지번호붙이기 (파이썬)

    https://www.acmicpc.net/problem/2667 2667번: 단지번호붙이기 과 같이 정사각형 모양의 지도가 있다. 1은 집이 있는 곳을, 0은 집이 없는 곳을 나타낸다. 철수는 이 지도를 가지고 연결된 집의 모임인 단지를 정의하고, 단지에 번호를 붙이려 한다. 여 www.acmicpc.net 문제 과 같이 정사각형 모양의 지도가 있다. 1은 집이 있는 곳을, 0은 집이 없는 곳을 나타낸다. 철수는 이 지도를 가지고 연결된 집의 모임인 단지를 정의하고, 단지에 번호를 붙이려 한다. 여기서 연결되었다는 것은 어떤 집이 좌우, 혹은 아래위로 다른 집이 있는 경우를 말한다. 대각선상에 집이 있는 경우는 연결된 것이 아니다. 는 을 단지별로 번호를 붙인 것이다. 지도를 입력하여 단지수를 출력하고..

    [백준] 1926번 - 그림 (파이썬)

    https://www.acmicpc.net/problem/1926 1926번: 그림 어떤 큰 도화지에 그림이 그려져 있을 때, 그 그림의 개수와, 그 그림 중 넓이가 가장 넓은 것의 넓이를 출력하여라. 단, 그림이라는 것은 1로 연결된 것을 한 그림이라고 정의하자. 가로나 세로 www.acmicpc.net 문제 어떤 큰 도화지에 그림이 그려져 있을 때, 그 그림의 개수와, 그 그림 중 넓이가 가장 넓은 것의 넓이를 출력하여라. 단, 그림이라는 것은 1로 연결된 것을 한 그림이라고 정의하자. 가로나 세로로 연결된 것은 연결이 된 것이고 대각선으로 연결이 된 것은 떨어진 그림이다. 그림의 넓이란 그림에 포함된 1의 개수이다. 입력 첫째 줄에 도화지의 세로 크기 n(1 ≤ n ≤ 500)과 가로 크기 m(1 ..

    [이코테]  구현 - 상하좌우 (파이썬)

    [이코테] 구현 - 상하좌우 (파이썬)

    내 풀이 size = int(input()) direction = list(input().split()) result = [1, 1] for i in range(len(direction)): if ((direction[i] == 'L' and result[1] == 1) or (direction[i] == 'U' and result[0] == 1) or (direction[i] == 'R' and result[1] == size) or (direction[i] == 'D' and result[0] == size)): continue elif (direction[i] == 'L'): result[1] = result[1] - 1 elif (direction[i] == 'U'): result[0] = res..