본문 바로가기
반응형

Algorithm296

[Python][이코테] 선택 정렬 선택정렬은 말 그대로 '선택해서 정렬한다' 라고 할 수 있다. 예를들어 7 5 9 0 3 1 6 2 4 8 이라는 숫자의 모음이 있다. 이를 오름차순으로 정렬하고 싶을때 파이썬에서는 단순히 sort()를 사용하면 해결된다. 하지만 그래도 우리는 알고리즘을 공부하는 사람으로서 메서드에 의존할 것이 아닌 직접 코드로 구현할 줄 알아야한다. 선택 정렬의 알고리즘은 단순하다. 오름차순의 경우 '가장 작은 숫자를 찾아서 맨 앞에 두고, 그 다음 숫자를 찾아서 그 다음에 두고...' 를 반복한다. 7 5 9 0 3 1 6 2 4 8 에서 0 5 9 7 3 1 6 2 4 8 0을 찾아 7과 바꾸고 0 1 9 7 3 5 6 2 4 8 그 다음 1을 찾아 2번째 자리인 5와 바꾸는 식으로 가장 작은 숫자를 하나씩 찾아서.. 2022. 8. 17.
[Python] 백준 10988번 - 팰린드롬인지 확인하기 문제 알파벳 소문자로만 이루어진 단어가 주어진다. 이때, 이 단어가 팰린드롬인지 아닌지 확인하는 프로그램을 작성하시오. 팰린드롬이란 앞으로 읽을 때와 거꾸로 읽을 때 똑같은 단어를 말한다. level, noon은 팰린드롬이고, baekjoon, online, judge는 팰린드롬이 아니다. 입력 첫째 줄에 단어가 주어진다. 단어의 길이는 1보다 크거나 같고, 100보다 작거나 같으며, 알파벳 소문자로만 이루어져 있다. 출력 첫째 줄에 팰린드롬이면 1, 아니면 0을 출력한다. 2가지 방법으로 풀었다. 처음에는 크게 생각 못하고 문자열을 반으로 나누고 뒷부분 반을 뒤집어서 생각하면 되겠구나 싶었다. s = input() if len(s)%2 == 0: a = s[0:len(s)//2] b = s[len(s).. 2022. 8. 17.
[Python] 백준 3009번 - 네 번째 점 문제 세 점이 주어졌을 때, 축에 평행한 직사각형을 만들기 위해서 필요한 네 번째 점을 찾는 프로그램을 작성하시오. 입력 세 점의 좌표가 한 줄에 하나씩 주어진다. 좌표는 1보다 크거나 같고, 1000보다 작거나 같은 정수이다. 출력 직사각형의 네 번째 점의 좌표를 출력한다. 처음엔 어떻게 풀지 고민하다가 x좌표와 y좌표는 무조건 3개의 좌표를 공유하고 그중 2개는 반드시 일치하며 다른 하나가 나머지 좌표임을 알았다. 그래서 단순 비교문을 사용하여 data = [] for i in range(3): data.append(list(map(int, input().split()))) a, b = 0, 0 if data[0][0] == data[1][0]: a = data[2][0] elif data[0][0].. 2022. 8. 12.
[Python] 백준 1934번 - 최소공배수 (최소공배수, 최대공약수, 유클리드호제법) https://www.acmicpc.net/problem/1934 1934번: 최소공배수 두 자연수 A와 B에 대해서, A의 배수이면서 B의 배수인 자연수를 A와 B의 공배수라고 한다. 이런 공배수 중에서 가장 작은 수를 최소공배수라고 한다. 예를 들어, 6과 15의 공배수는 30, 60, 90등이 있 www.acmicpc.net 문제 두 자연수 A와 B에 대해서, A의 배수이면서 B의 배수인 자연수를 A와 B의 공배수라고 한다. 이런 공배수 중에서 가장 작은 수를 최소공배수라고 한다. 예를 들어, 6과 15의 공배수는 30, 60, 90등이 있으며, 최소 공배수는 30이다. 두 자연수 A와 B가 주어졌을 때, A와 B의 최소공배수를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 테스트 케이스의 개수 T.. 2022. 8. 11.
반응형