본문 바로가기

분류 전체보기

(239)
[Algorithm] 기둥과 보 설치 이 문제는 2020 카카오 신입 공채 코딩테스트에 출제되었던 문제이다. 아래의 링크를 참고하자. https://school.programmers.co.kr/learn/courses/30/lessons/60061?language=python3 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 이 문제는 전형적인 시뮬레이션 문제이다. 문제에서 제시한 구체적인 처리 과정을 프로그램 상에서 차례대로 수행하여 결과를 도출하면 된다. 이 문제의 전체 명령의 개수는 1,000개이하이며 제한 시간은 5초로 넉넉한 편이다. 따라서 O(M^3)의 시간복잡도 알고리즘을 사용해도..
[Python] 알파벳 순서대로 정렬하기 1. sorted() 함수를 이용하여 정렬하기Python의 sorted()함수는 요소 값으로 반복 가능한 객체를 정렬하는 데 사용된다. 이미 알고 있듯이 파이썬 문자열은 반복 가능한 객체다. 따라서 sorted() 함수를 사용하여 문자열을 알파벳순으로 정렬할 수 있다. 다음의 예시를 보자. data = 'chaeso'print(sorted(data)) 결과는 다음과 같다. ['a', 'c', 'e', 'h', 'o', 's'] 하지만 문제가 있다. 위의 방법은 문자를 오직 리스트의 형태로 문자열을 출력하는 것만 가능하다. 우리가 원하는 것이 data라는 문자열 변수 자체를 정렬하고 싶은 것이라면 아래의 방법을 사용하도록 하자. 2. str.join() 함수를 이용하여 정렬하기str.join() 함수는 i..
[Python] ImportError: No module named '_curses' 에러 이 에러는 curses 모듈이 윈도우를 지원하지 않아서 생기는 에러이다. 다음과 같은 명령어를 입력해보자. pip install windows-curses
[Python] 알파벳을 숫자로 만들기 (아스키코드) 알파벳 A 또는 a를 숫자 1에 대응시키는 법에 대해 알아보자. 우선 아스키코드가 무엇인지부터 알아야 한다. 아스키코드는 영문 키보드로 입력할 수 있는 모든 기호들이 할당되어 있는 가장 기본적인 부호 체계이다. 알파벳 A의 아스키코드는 65, a의 아스키코드는 97임을 확인할 수 있다. 파이썬에는 아스키코드 변환과 관련된 함수가 2가지 있다. 1. ord(문자) 하나의 문자를 인자로 받고 해당 문자에 해당하는 유니코드 정수를 반환한다. ex) ord('a') -> 정수 97을 반환 2. chr(숫자) 하나의 정수를 인자로 받고 해당 정수에 해당하는 유니코드 문자를 반환한다. 인자(정수)의 유효 범위는 0 ~ 1,114,111 (16진수 0x10 FFFF)까지 입니다. chr(97) -> 문자 'a'를 반..
[Algorithm] 볼링공 고르기 문제 A, B 두 사람이 볼링을 치고 있습니다. 두 사람은 서로 무게가 다른 볼링공을 고르려고 합니다. 볼링공은 총 N개가 있으며 각 볼링공마다 무게가 적혀 있고, 공의 번호는 1번부터 순서대로 부여됩니다. 또한 같은 무게의 공이 여러개 있을 수 있지만, 서로 다른 공으로 간주합니다. 볼링공의 무게는 1부터 M까지의 자연수 형태로 존재합니다. 예를 들어 N이 5이고, M이 3이며 각각의 무게가 차례대로 1, 3, 2, 3, 2일때 각 공의 번호가 차례대로 1번부터 5번까지 부여됩니다. 이때 두 사람이 고를 수 있는 볼링공 번호의 조합을 구하면 다음과 같습니다. (1번, 2번), (1번, 3번), (1번, 4번), (1번, 5번), (2번, 3번), (2번, 5번), (3번, 4번), (4번, 5번) 결과..
[Algorithm] 만들 수 없는 금액 문제 동네 편의점의 주인인 동빈이는 N개의 동전을 가지고 있습니다. 이때 N개의 동전을 이용하여 만들 수 없는 양의 정수 금액 중 최솟값을 구하는 프로그램을 작성하세요. 예를 들어, N = 5 이고, 각 동전이 각각 3원, 2원, 1원, 1원, 9원짜리(화폐 단위) 동전이라고 가정합시다. 이때 동빈이가 만들 수 없는 양의 정수 금액 중 최솟값은 8원입니다. 또 다른 예시로, N = 3 이고, 각 동전이 각각 3원, 5원, 7원짜리(화폐 단위) 동전이라고 가정합시다. 이때 동빈이가 만들 수 없는 양의 정수 금액 중 최솟값은 1원입니다. 입력 조건 첫째 줄에는 동전의 개수를 나타내는 양의 정수 N이 주어집니다. (1 return 1 2. if 리스트의 최댓값 리스트의 2번째 ..
[Python] range함수 사용법 1. range(10) >>> 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 2. range(1,11) >>> 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 3. range(0, 20, 2) >>> 0, 2, 4, 6, 8, 10, 12, 14, 16, 18 4. range(20, 0, -2) >>> 20, 18, 16, 14, 12, 10, 8, 6, 4, 2
[Algorithm] 문자열 뒤집기 https://www.acmicpc.net/problem/1439 1439번: 뒤집기 다솜이는 0과 1로만 이루어진 문자열 S를 가지고 있다. 다솜이는 이 문자열 S에 있는 모든 숫자를 전부 같게 만들려고 한다. 다솜이가 할 수 있는 행동은 S에서 연속된 하나 이상의 숫자를 잡고 모 www.acmicpc.net 이 문제 풀이의 핵심은 전부 0으로 바꾸는 경우와 전부 1로 바꾸는 경우 중에서 더 적은 횟수를 가지는 경우를 찾는 것이다. 그렇다면 어떻게 해야 뒤집어야 하는 0그룹의 개수와 1그룹의 개수를 구할 수 있을까? 필자는 이렇게 생각했다. 예시를 들어 생각해보자. 입력으로 '001101' 이 주어졌다고 치자. 입력값을 리스트에 넣고 리스트의 원소를 차례대로 이웃하는 원소와 비교를해서 값이 같다면 넘어..