문제 팰린드롬이란, 앞으로 읽으나 뒤로 읽으나 똑같은 문자열을 말한다. 예를 들어, “abcba”, “abccba” 등이 있을 수 있다. 문자열이 주어질 때, 이를 팰린드롬으로 만들기 위하여 추가해야 하는 최소의 문자 개수를 출력하는 프로그램을 작성하시오. 예를 들어, 문자열이 “abca” 로 주어질 경우, ‘b’만 추가하면 “abcba” 를 만들 수 있으므로, 이 때는 1개의 문자만 추가하면 된다. 또 다른 예로써, 문자열이 “adcba” 로 주어질 경우에는, 문자 2개를 추가해야 한다. 입력 첫 번째 줄에 문자열이 주어진다. 이 문자열의 길이는 1,000 을 넘지 않는다. 출력 주어진 문자열을 팰린드롬으로 만들기 위해서 추가해야 하는 문자 개수의 최솟값을 출력한다. 예제 입력 adcba 예제 출력 2..
두 문자열 사이의 거리 문제 두 문자열 A, B 가 주어질 때, 두 문자열 사이의 거리를 구하려 한다. 여기서 거리는 다음과 같이 정의된다. 문자열 A가 주어질 때, 여기서 하나의 연산은 하나의 알파벳을 삽입 또는 삭제하는 것을 의미한다. 문자열 A와 B 사이의 거리란, A에서 시작하여 B를 만들기 위한 최소 연산의 횟수로 정의된다. 예를 들어, 문자열 A가 “abcabcd”이고, 문자열 B가 “abccabc” 라면, 문자열 A와 B 사이의 거리는 2가 된다. 왜냐하면 문자열 A의 세 번째에 ‘c’를 삽입하고, 가장 마지막에 있는 ‘d’를 삭제하면 문자열 B를 얻기 때문이다. 두 문자열이 주어질 때, 두 문자열 사이의 거리를 출력하는 프로그램을 작성하시오. 입력 첫 번째 줄과 두 번째 줄에 문자열이 주어..
문제 N개의 정수가 주어질 때, 연속된 부분을 선택하여 합을 최대화 하는 프로그램을 작성하시오. 예를 들어, 아래와 같이 8개의 숫자가 있을 경우, 색칠된 부분을 선택했을 때 그 합이 가장 최대가 된다. 입력 첫 번째 줄에 n이 주어진다. ( 1 ≤ n ≤ 1,000,000 ) 두 번째 줄에 n개의 정수가 주어진다. 출력 연속된 부분을 선택하였을 때의 최댓값을 출력한다. 예제 입력 8 2 3 -5 8 -3 4 2 -9 예제 출력 11 예제 입력 5 -1 -2 3 -2 4 예제 출력 copy 5 풀이 data 배열에는 i 까지의 Max값을 구해서 저장한다. 즉 data[3] 을 구할 때, data[2]는 i=2일 때의 최대값이 들어가 있기 때문에 현재 입력받은 value 값과 그 값을 data[2]와 더했..
문제 N x M의 지도가 주어지며, 이 지도의 각 칸에는 자원이 존재한다. 자원의 양은 정수로 나타난다. 다음 그림은 5 x 6 의 지도에 존재하는 자원을 나타낸다. 철수는 자원을 채취하는 로봇을 갖고 있으며, 이 로봇은 (0, 0) 에서 출발하여 (N-1, M-1) 에서 자원 채취를 마친다. 로봇은 한가지 제약이 있는데, 오른쪽과 아랫쪽으로밖에 움직일 수 없다는 것이다. 이 로봇을 이용하여 가장 많이 채취할 수 있는 자원의 양을 출력하는 프로그램을 작성하시오. 위의 예제의 경우 다음과 같이 채취하는 것이 최대이며, 그 양은 49이다. 입력 첫 번째 줄에 N, M이 주어진다. ( 1 ≤ N, M ≤ 1,000 ) 두 번째 줄부터 N x M 의 지도에 존재하는 자원의 양이 주어진다. 출력 로봇을 이용하여 ..
문제 숫자 N을 제곱수의 합으로 표현하고자 할 때, 사용해야 하는 제곱 수의 최소 개수를 출력하는 프로그램을 작성하시오. 예를 들어, 숫자 45를 제곱수의 합으로 표현하고자 할 때 필요한 제곱 수의 최소 개수는 2개이며, 이는 다음과 같다. 45 = 3^2 + 6^2 입력 첫 번째 줄에 N이 주어진다. ( 1 ≤ N ≤ 100,000 ) 출력 필요한 제곱 수의 최소 개수를 출력한다. 예제 입력 45 예제 출력 2 예제 입력 38 예제 출력 3 풀이 N 풀이 개수 1 1 1 2 1 + 1 2 3 1 + 1 + 1 3 4 2^2 1 5 2^2 + 1 2 6 2^2 + 1 + 1 3 7 2^2 + 1 + 1 + 1 4 8 2^2 + 2^2 2 ... ... ... N = 8 일 경우, 1 + 1 + 1 + 1..
문제 2 x N 직사각형 모양의 칸이 있다. 이를 2 x 1 모양의 타일로 가득 채우려 한다. 가능한 경우의 수를 출력하는 프로그램을 작성하시오. 단, 가능한 경우의 수가 매우 많을 수 있으므로, 그 경우의 수를 1,000,007 로 나눈 나머지를 출력한다. 예를 들어, N = 3 일 경우에는 다음 세 가지의 가능한 경우가 존재한다. 입력 첫 번째 줄에 N이 주어진다. ( 1 ≤ N ≤ 100 ) 출력 가능한 경우의 수를 1,000,007 로 나눈 나머지를 출력한다. 예제 입력 3 예제 출력 3 예제 입력 8 예제 출력 34 예제 입력 37 예제 출력 87896 풀이 N = 1 일 때 1개 N = 2 일 때 2개 N = 3 일 때 3개 N = 4 일 때 5개 ..... 이렇게 하나 씩 구하다보면 점화식을..
- Total
- Today
- Yesterday
- 기능개발
- binarySearch
- SWExpert
- DFS
- Process Scheduling
- 사회망서비스
- MFQ
- algorithm
- 알고리즘
- 농협정보시스템IT
- 우선순위큐
- hash
- N-Queen
- git
- 4-way-handshake
- 프로그래머스
- java
- Android
- loss function
- Objective function
- 백 트래킹
- 프로세스 스케줄링
- 네트워크
- 백트래킹
- 자료구조
- MLQ
- programmers
- SRTN
- hashtable
- 3-way-handshake
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |