본문 바로가기
반응형

혼자 공부하는 것들/알고리즘27

[프로그래머스] 숫자 문자열과 영단어 (2021 카카오 채용연계형 인턴십) 알고리즘 문제를 천천히 하나하나 풀어보고 있습니다. 문자열을 다루는 문제 중에 괜찮아 보여서 풀어보았습니다. 문제 설명 네오와 프로도가 숫자놀이를 하고 있습니다. 네오가 프로도에게 숫자를 건넬 때 일부 자릿수를 영단어로 바꾼 카드를 건네주면 프로도는 원래 숫자를 찾는 게임입니다. 다음은 숫자의 일부 자릿수를 영단어로 바꾸는 예시입니다. 1478 → "one4seveneight" 234567 → "23four5six7" 10203 → "1zerotwozero3" 이렇게 숫자의 일부 자릿수가 영단어로 바뀌어졌거나, 혹은 바뀌지 않고 그대로인 문자열 s가 매개변수로 주어집니다. s가 의미하는 원래 숫자를 return 하도록 solution 함수를 완성해주세요. 참고로 각 숫자에 대응되는 영단어는 다음 표와 같.. 2021. 8. 28.
[프로그래머스][Python] 두 개 뽑아서 더하기 으아아아 내일 코딩테스트..... 문제 설명 정수 배열 numbers가 주어집니다. numbers에서 서로 다른 인덱스에 있는 두 개의 수를 뽑아 더해서 만들 수 있는 모든 수를 배열에 오름차순으로 담아 return 하도록 solution 함수를 완성해주세요. 제한사항 numbers의 길이는 2 이상 100 이하입니다. numbers의 모든 수는 0 이상 100 이하입니다. 입출력 예 numbers result [2,1,3,4,1] [2,3,4,5,6,7] [5,0,2,7] [2,5,7,9,12] def solution(numbers): result=[] for i in range(len(numbers)-1): for j in range(len(numbers)): if i != j: result.appe.. 2021. 2. 21.
[프로그래머스][Python] 나누어 떨어지는 숫자 배열 내일 코딩테스트를 봐야해서 부랴부랴 전날에 하루종일 알고리즘을 풀어보았다... 다 까먹었었는데 간간히 기억이났다.... 오또케하지... 아무튼 문제를 보자 문제 설명 array의 각 element 중 divisor로 나누어 떨어지는 값을 오름차순으로 정렬한 배열을 반환하는 함수, solution을 작성해주세요. divisor로 나누어 떨어지는 element가 하나도 없다면 배열에 -1을 담아 반환하세요. 제한사항 arr은 자연수를 담은 배열입니다. 정수 i, j에 대해 i ≠ j 이면 arr[i] ≠ arr[j] 입니다. divisor는 자연수입니다. array는 길이 1 이상인 배열입니다. 입출력 예 arr divisor return [5, 9, 7, 10] 5 [5, 10] [2, 36, 1, 3] .. 2021. 2. 21.
[백준] 2908번 java 상수 문제를 보도록 하자. www.acmicpc.net/problem/2908 2908번: 상수 상근이의 동생 상수는 수학을 정말 못한다. 상수는 숫자를 읽는데 문제가 있다. 이렇게 수학을 못하는 상수를 위해서 상근이는 수의 크기를 비교하는 문제를 내주었다. 상근이는 세 자리 수 두 www.acmicpc.net 상수는 수학을 못한다. 만약 숫자를 123 456 이렇게 두 개를 입력받으면, 상수는 321과 654로 인식해 더큰값을 출력하는 것이다. 증말 이상한 친구다. 아무튼 숫자를 입력받아 StringBuffer를 사용해 reverse로 문자열로 뒤집은뒤 다시 int형으로 바꾸어 비교해서 출력하면 될것같다. 풀이방법을 보자 import java.util.*; public class Main { public s.. 2020. 12. 8.
[백준] 2775번 java 부녀회장이될테야!! 문제를 보자. www.acmicpc.net/problem/2775 2775번: 부녀회장이 될테야 첫 번째 줄에 Test case의 수 T가 주어진다. 그리고 각각의 케이스마다 입력으로 첫 번째 줄에 정수 k, 두 번째 줄에 정수 n이 주어진다. (1 2020. 12. 6.
백준 Java) 3052번 나머지 문제 일단 문제를 한번 보자! www.acmicpc.net/problem/3052 3052번: 나머지 39, 40, 41, 42, 43, 44, 82, 83, 84, 85를 42로 나눈 나머지는 39, 40, 41, 0, 1, 2, 40, 41, 0, 1이다. 서로 다른 값은 모두 6개가 있다. www.acmicpc.net 10개의 수를 받아 42로 나눈 나머지 값을 서로 다른 값이 몇 개가 있는지 구하는 것이다. 필자는 선택 정렬로 구현해보면 어떨까?라는 생각으로 풀어보았다. 처음 접근한 방식을 써보겠다. import java.util.Scanner; public class main { public static void main(String[] args) { int[] num = new int[10]; Sc.. 2020. 12. 3.
크러스컬 알고리즘의 구현 및 실험 문제) 다음의 가중치가 주어진 도로망을 이용하여 실습에 주어진 코드로 최소 신장(생성) 트리를 출력하여라. 먼저 주어진 코드에 맞는 그래프 데이터 파일 "cities.dat" 파일을 만들고 이것을 이용하여 실제 신장트리를 출력할 때 도시명이 출력되도록 하여라. C언어로 코드를 구현해보면 이렇게 작성할 수 있다. #include #include #include #define INF 10000 void set_init(int n); int set_find(int v); char *clitiename[10]= {"서울","원주","강를","천안","논산","대전","광주","부산","대구","포항"}; void set_union(int s1, int s2); typedef struct { int u, v; /.. 2020. 10. 13.
퀵정렬 개선하기 입력의 크기가 작을때는 퀵정렬과 삽입정렬의 속도차가 크지 않다. 퀵정렬을 재귀적으로 수행해 나갈 때 크기가 25 보다 작을 때는 더 이상 분할을 중단하고 삽입정렬을 사용하는 코드를 작성하라. #include #include #include double toc (double tstart); #define DTYPE double #define SWAP(aa,bb) { DTYPE tmp; tmp=aa; aa=bb; bb=tmp;} DTYPE *mk_rand_data(int N); void quicksort(DTYPE A[], int left, int right); void insertionsort(DTYPE A[],int left, int N); int partition(DTYPE A[], int left, .. 2020. 10. 13.
백준 C) 10798번 문제 세로 읽기 문제를 같이 볼까요? www.acmicpc.net/problem/10798 10798번: 세로읽기 총 다섯줄의 입력이 주어진다. 각 줄에는 최소 1개, 최대 15개의 글자들이 빈칸 없이 연속으로 주어진다. 주어지는 글자는 영어 대문자 ‘A’부터 ‘Z’, 영어 소문자 ‘a’부터 ‘z’, 숫자 ‘0’� www.acmicpc.net 한 줄의 단어는 글자들을 빈칸 없이 연속으로 나열해서 최대 15개의 글자들로 이루어진다. 또한 만들어진 다섯 개의 단어들의 글자 개수는 서로 다를 수 있다. 문제를 보고 딱 든 생각이 2차원 배열을 사용하면 손쉽게 풀 수 있을 것 같았다. 그래서 저의 코드를 보자면 #include #define MAX_SIZE 15 char str_read[5][MAX_SIZE]; int main.. 2020. 9. 26.
반응형