주어진 배열에서 최대값을 찾는 문제이다.최대값을 배열의 0번째로 지정한 후, 나머지 배열을 순회하면서 현재 최대값보다 크면 해당값을 최대값으로 바꿔간다.전부 순회후엔, 최대값이 도출된다.
알파벳의 빈도수를 저장할 배열을 만들었다.각 배열은 ord함수를 사용해 아스키코드 -> 인덱스로 변환하고, 0~25 인덱스에 각 알파벳의 빈도수를 저장했다.빈도수가 저장된 배열에서 최대 빈도수를 도출하고 최대 빈도수의 알파벳을 구했다.※ ord()특정 아스키코드에 해당
Q. 다음과 같이 0 혹은 양의 정수로만 이루어진 배열이 있을 때, 왼쪽부터 오른쪽으로 하나씩 모든 숫자를 확인하며 숫자 사이에 '✕' 혹은 '+' 연산자를 넣어 결과적으로 가장 큰 수를 구하는 프로그램을 작성하시오. 단, '+' 보다 '✕' 를 먼저 계산하는 일반적인
Q. 다음과 같이 영어로 되어 있는 문자열이 있을 때, 이 문자열에서 반복되지 않는 첫번째 문자를 반환하시오. 만약 그런 문자가 없다면 \_ 를 반환하시오.알파벳 빈도수를 구해서 배열에 담았다구한 배열을 활용해서 중복되지 않은 알파벳을 도출했다.빈도수가 2 이상이면 중
이진 탐색은 탐색 시, 범위를 반으로 좁혀가며 탐색하는 것을 의미한다.1~16범위의 배열이 있고 '14'를 탐색하는 상황탐색을 하기위해 범위를 설정한다최소값, 최대값 인덱스를 정하고, 범위를 반으로 좁혀가며 탐색하도록
자기 자신을 호출하는 함수!아래 함수는 60~1을 차례로 출력하는 함수이다.if문으로 재귀 함수를 탈출하는 지점을 정해주었다.※ 재귀 함수는 탈출하는 지점을 정해주어야 한다. 안하면 무한으로 자신을 호출하기 때문에 오류 발생재귀 함수를 활용해서 팩토리얼을 구현할 수 있
버블 정렬은 인접한 두 데이터끼리 크기를 비교해가며 정렬하는 방식이다.오름차순으로 정렬하기2중 for문을 통해 정렬이 이루어진다.데이터의 크기만큼 반복했다가, 횟수가 1씩 줄어들면서 반복한다.안쪽 for문에서 len(array)-1-i의 의미는 다음과 같다.마지막 원소
주어진 데이터 중에서 최소값을 찾고, 찾은 최소값을 맨 앞부터 정렬해가는 방식정렬을 할 때마다 가장 앞자리를 제외하고 정렬한다.오름차순 정렬최소값을 찾고, 가장 앞자리와 자리를 바꾼다.정렬이 수행될 때마다, 가장 앞자리는 제외해가며 정렬을 수행한다 (앞 자리는 정렬이
삽입 정렬은, 요소를 올바른 위치에 삽입해 정렬하는 방식으로, 자리 변경이 필요할 때만 위치를 변경하므로 효과적이다!0번째는 이미 정렬되어 있는 상태이므로 1번째부터 순회하도록 했다반복문 순회는 역순으로 비교하며, 최소값을 가장 앞으로 보내도록 구현했다자리변경이 필요없
주어진 데이터를 잘게 나누고, 잘게 나눈 데이터들을 합치면서 정렬해가며 최종적으로 정렬된 데이터를 도출하는 방식재귀를 통해 주어진 데이터를 잘게 쪼개고, 쪼개진 데이터들을 병합하면서 정렬한다O(nlogn)
어떤 문제를 풀기 위한 절차/방법어떤 문제에 대해, 특정한 입력을 넣으면, 원하는 출력을 얻을 수 있도록 만드는 프로그래밍음식 레시피
한 개의 문자열을 입력받고, 특정 문자를 입력받아 해당 특정문자가 입력받은 문자열에 몇 개 존재하는지 알아내는 프로그램을 작성하세요.대소문자를 구분하지 않습니다.문자열의 길이는 100을 넘지 않습니다.첫 줄에 문자열이 주어지고, 두 번째 줄에 문자가 주어진다.문자열은
대문자와 소문자가 같이 존재하는 문자열을 입력받아 대문자는 소문자로 소문자는 대문자로 변환하여 출력하는 프로그램을 작성하세요.첫 줄에 문자열이 입력된다. 문자열의 길이는 100을 넘지 않습니다.문자열은 영어 알파벳으로만 구성되어 있습니다.첫 줄에 대문자는 소문자로, 소
한 개의 문장이 주어지면 그 문장 속에서 가장 긴 단어를 출력하는 프로그램을 작성하세요.문장속의 각 단어는 공백으로 구분됩니다.첫 줄에 길이가 100을 넘지 않는 한 개의 문장이 주어집니다. 문장은 영어 알파벳으로만 구성되어 있습니다.첫 줄에 가장 긴 단어를 출력한다.
N개의 단어가 주어지면 각 단어를 뒤집어 출력하는 프로그램을 작성하세요.첫 줄에 자연수 N(3<=N<=20)이 주어집니다.두 번째 줄부터 N개의 단어가 각 줄에 하나씩 주어집니다. 단어는 영어 알파벳으로만 구성되어 있습니다.N개의 단어를 입력된 순서대로 한
영어 알파벳과 특수문자로 구성된 문자열이 주어지면 영어 알파벳만 뒤집고,특수문자는 자기 자리에 그대로 있는 문자열을 만들어 출력하는 프로그램을 작성하세요.첫 줄에 길이가 100을 넘지 않는 문자열이 주어집니다.첫 줄에 알파벳만 뒤집힌 문자열을 출력합니다.aS알파벳일 경
소문자로 된 한개의 문자열이 입력되면 중복된 문자를 제거하고 출력하는 프로그램을 작성하세요.중복이 제거된 문자열의 각 문자는 원래 문자열의 순서를 유지합니다.첫 줄에 문자열이 입력됩니다. 문자열의 길이는 100을 넘지 않는다.첫 줄에 중복문자가 제거된 문자열을 출력합니
앞에서 읽을 때나 뒤에서 읽을 때나 같은 문자열을 회문 문자열이라고 합니다.문자열이 입력되면 해당 문자열이 회문 문자열이면 "YES", 회문 문자열이 아니면 “NO"를 출력하는 프로그램을 작성하세요.단 회문을 검사할 때 대소문자를 구분하지 않습니다.첫 줄에 길이 100
5\*5 격자판에 아래롸 같이 숫자가 적혀있습니다.N\*N의 격자판이 주어지면 각 행의 합, 각 열의 합, 두 대각선의 합 중 가 장 큰 합을 출력합니다.첫 줄에 자연수 N이 주어진다.(2<=N<=50)두 번째 줄부터 N줄에 걸쳐 각 줄에 N개의 자연수가 주
지도 정보가 N\*N 격자판에 주어집니다. 각 격자에는 그 지역의 높이가 쓰여있습니다.각 격자판의 숫자 중 자신의 상하좌우 숫자보다 큰 숫자는 봉우리 지역입니다. 봉우리 지역이 몇 개 있는 지 알아내는 프로그램을 작성하세요.격자의 가장자리는 0으로 초기화 되었다고 가정
김갑동 선생님은 올해 6학년 1반 담임을 맡게 되었다.김갑동 선생님은 우선 임시로 반장을 정하고 학생들이 서로 친숙해진 후에 정식으로 선거를 통해 반장을 선출하려고 한다.그는 자기반 학생 중에서 1학년부터 5학년까지 지내오면서 한번이라도 같은 반이었던 사람이 가장 많은
오름차순으로 정렬이 된 두 배열이 주어지면 두 배열을 오름차순으로 합쳐 출력하는 프로그램을 작성하세요.첫 번째 줄에 첫 번째 배열의 크기 N(1<=N<=100)이 주어집니다.두 번째 줄에 N개의 배열 원소가 오름차순으로 주어집니다.세 번째 줄에 두 번째 배열
A, B 두 개의 집합이 주어지면 두 집합의 공통 원소를 추출하여 오름차순으로 출력하는 프로그램을 작성하세요.첫 번째 줄에 집합 A의 크기 N(1<=N<=30,000)이 주어집니다.두 번째 줄에 N개의 원소가 주어집니다. 원소가 중복되어 주어지지 않습니다.세
현수의 아빠는 제과점을 운영합니다. 현수 아빠는 현수에게 N일 동안의 매출기록을 주고 연속된 K일 동안의 최대 매출액이 얼마인지 구하라고 했습니다.만약 N=10이고 10일 간의 매출기록이 아래와 같습니다. 이때 K=3이면12 1511 20 2510 20 19 13 15
N개의 수로 이루어진 수열이 주어집니다.이 수열에서 연속부분수열의 합이 특정숫자 M이 되는 경우가 몇 번 있는지 구하는 프로그램을 작성하세요.만약 N=8, M=6이고 수열이 다음과 같다면1 2 1 3 1 1 1 2합이 6이 되는 연속부분수열은 {2, 1, 3}, {1,
N입력으로 양의 정수 N이 입력되면 2개 이상의 연속된 자연수의 합으로 정수 N을 표현하는 방법의 가짓수를 출력하는 프로그램을 작성하세요.만약 N=15이면7+8=154+5+6=151+2+3+4+5=15와 같이 총 3가지의 경우가 존재한다.첫 번째 줄에 양의 정수 N(7
https://leetcode.com/problems/two-sum/직관적으로 떠올린 풀이전체를 훑어보며 조건과 일치하는지 탐색
파이썬은 문자열 다루기가 쉽다문자열 슬라이싱https://school.programmers.co.kr/learn/courses/30/lessons/181943