"꾸준하고 완벽한 한 걸음"

2024/07 55

[엘리스 알고리즘 코드 챌린지 시즌 2] 예선 4일 [Python]

풀이루트가 1번인 트리에서 하나의 말을 "두 사람이 최적으로" 번갈아가며 점수를 얻고 말을 이동하는 문제다.문제에서 주어진 두 사람이 최적으로 라는 지문의 의미는 결국 시작 정점을 기준으로 자신의 점수를 가장 높이는 방향으로 게임을 끝내는 것을 의미한다. 우선 간선을 입력받아 양방향 그래프를 생성하자.이제 dfs로 리프노드까지 탐색하며 역순으로 부모노드에 대한 점수를 계산하고자 한다.양방향 그래프이므로 자식 노드로만 탐색을 해주자.리프노드 까지 탐색을 완료했다면 가장 적은 점수차를 dp에 갱신해주자.만약 자식이 없다면(리프노드) 자신의 번호가 자신의 점수가 되므로 diff를 0으로 계산해주자. 예선 3일차에서도 유명한 문제임에 비해 예외가 적용되지 않는 오류가 있었고, 제공되는 자료와 맞지않는 문제가 주..

Activity 2024.07.12

[백준 05988] 홀수일까 짝수일까 [Python]

문제짝이 없는 경재는 매일 홀로 있다보니 홀수를 판별할 수 있는 능력이 생겼다. 창식이는 경재의 말이 사실인지 그 능력을 시험해보려 한다. 창식이의 의심이 끝이 없을 것 같아 N개만 확인하기로 정했다.N개의 정수가 주어지면 홀수인지 짝수인지를 출력하는 프로그램을 만들어 경재의 능력을 검증할 수 있게 도와주자.입력첫 번째 줄에 숫자의 개수 N(1 두 번째 줄부터 N+1번째 줄에 걸쳐 홀수인지 짝수인지 확인할 정수 K (1 출력N개의 줄에 걸쳐 한 줄씩 정수 K가 홀수라면 'odd'를, 짝수라면 'even'을 출력한다.풀이N개의 수를 입력받아 홀짝 여부를 판단하는 문제다.소스코드보기출처https://www.acmicpc.net/problem/5988

[백준 11383] 뚊 [Python]

문제정우는 "뚊"과 "돌돔"을 의미하는 두 이미지를 받았다. 과연 두 그림이 같은지 검사해보자. 즉 N× M 크기의 이미지와 N ×2 M 크기의 이미지가 주어질 때 첫 번째 이미지를 가로로 두 배로 늘이면 두 번째 이미지가 되는지 검사하는 프로그램을 작성하라.입력입력의 첫 번째 줄에 N, M (1 ≤ N, M ≤ 10)이 주어진다. 다음 N개의 줄의 각 줄에는 M개의 문자가 주어진다. 다음 N개의 줄의 각 줄에는 2M개의 문자가 주어진다. 모든 문자는 영문 알파벳 대문자 혹은 소문자이다.출력첫 번째로 주어진 이미지를 가로로 두 배로 늘렸을 때 두 번째 이미지가 된다면 "Eyfa"을 출력하고, 되지 않는다면 "Not Eyfa"을 출력한다.풀이입력받은 문자열 N개의 문자열의 각 문자를 2배로 늘렸을 때 두번..

[엘리스 알고리즘 코드 챌린지 시즌 2] 예선 3일 [Python]

풀이입력받은 문자열 S에 대해 압축을 해제하는 문제다.압축된 문자열은 K(Q)의 형식으로 주어지며 이를 해제할 경우 Q를 K번 반복한다는 의미다.스택과, 재귀 중 스택으로 푸는 방법이 익숙해 스택을 사용해 풀이했다. K(K(Q)K(Q))와 같은 예외를 고려해 문자열의 역순으로 진행했다.정작 제공된 테스트케이스에는 이와 같은 예외가 없었다.우선 ')' 인 경우에는 그냥 stack에 집어넣자.그 다음에는 Q에 해당하는 수들이 들어올 것이다.만약 stack의 마지막 요소가 ')'가 아니라면 Q의 길이를 저장하는 방식이므로 주어진 수( num )를 넣거나 더해주자.탐색을 계속 진행해 '(' 가 나온다면 스택에 넣은 Q의 길이를 뽑아 K와 곱해준 후 다시 스택에 넣어주면 된다.이 과정에서 중복계산과 스택에 남아있..

Activity 2024.07.11

[백준 05949] Adding Commas [Python]

문제Bessie is working with large numbers N (1 입력Line 1: A single integer: N 출력Line 1: The integer N with commas inserted before each set of three digits except the first digits (as traditionally done in many cultures)풀이입력받은 수를 읽기 쉽도록 3자리마다 쉼표를 넣어 출력해주는 문제다.format함수를 사용해 쉽게 풀이할 수 있다.소스코드보기출처https://www.acmicpc.net/problem/5949

[백준 03996] 위대한 사기꾼 [Python]

문제믿기 힘들겠지만 상근이는 이번 겨울 방학에 달에 갔다 왔다. 방학이 끝나고 다시 학교로 돌아온 상근이는 친구들에게 달나라 사람(Selenites)을 만났던 이야기를 해주었다.상근이는 달에서 사용하는 수 체계를 주로 설명해주었다. 달에서는 음의 진법을 사용한다.음의 진법은 사람들이 이해하기는 어렵다. 따라서, 상근이는 달을 여행하는 동안 0과 𝑛을 포함하는 사이의 수 중에서 𝑘진법과 −𝑘진법에서 표현이 같은 수를 모두 외웠다. 상근이가 외운 숫자의 개수를 구하는 프로그램을 작성하시오.입력첫째 줄에 𝑛과 𝑘가 주어진다. (1 ≤ 𝑛 ≤ 10^15, 2 ≤ 𝑘 ≤ 1,000)출력첫째 줄에 상근이가 달에서 생활하면서 외운 숫자의 개수를 출력한다.풀이K진법과 -K진법으로 표현한 수가 표현이 동일한..

[엘리스 알고리즘 코드 챌린지 시즌 2] 예선 1일 [Python]

풀이주어진 수의 구성으로 만들 수 있는 다음으로 큰 수 즉 다음 순열을 구하는 문제다.N은 1이상 999,999이하의 수로 주어지지만, 전체는 자릿수는 6으로 완전 탐색인 순열로 풀이가 가능하다.순열을 구하고, 정렬해서 N보다 큰 다음 순열을 출력해주자.소스코드보기출처 엘리스 코드 챌린지[엘리스 코드 챌린지] 신청 페이지 입니다. 현재 알고리즘 코드 챌린지가 진행 중입니다!code-challenge.elice.io

Activity 2024.07.09

[백준 05789] 한다 안한다 [Python]

문제옛날에는 결정하기 어려운 일이 있을 때는 꽃을 이용해서 결정을 내렸다. 꽃을 하나 떼서 잎을 하나씩 떼면서, 한다와 안한다를 번갈아 가면서 말하다가 마지막 잎을 뗄 때 말한 말로 결정을 했다.상근이는 이 방법을 응용해서 결정하기 어려운 일을 하나 결정하려고 한다.먼저, 0과 1로 이루어진 문자열을 랜덤으로 하나 만든다. 그 다음 문자열의 양 끝에서 수를 하나씩 고르고, 두 수를 비교한다. 수가 같으면 "한다"이고, 다르면 "안한다"이다. 그 다음에는 고른 수를 버리고, 모든 수를 고를 때까지 이 작업을 반복한다. 따라서, 마지막으로 고르는 두 숫자로 결정을 내리는 것이다.0과 1로 이루어진 문자열이 주어졌을 때, 상근이가 내리는 결정을 구하는 프로그램을 작성하시오.입력첫째 줄에는 테스트 케이스의 개수..

[짧고 굵게 배우는 JSP 웹 프로그래밍과 스프링 프레임워크] 연습문제 5장 정답

연습문제1. 다음 중 서블릿의 생명 주기 메서드에 해당하지 않는 것을 고르시오.(3) close()  2. 서블릿 클래스 구조에서 사용자 요청에 따라 service() 메서드를 통해 호출되는 대표적인 메서드 2개는 무엇인가?(3) doGet(), doPost()  3. 다음 빈칸에 들어갈 단어를 고르시오.서블릿에서 페이지 이동 시 데이터를 포함하는 경우에는 ( ) 방식을 사용하며, 데이터를 포함하지 않는 경우에는 ( ) 방식을 사용한다. (3) 포워딩, 리디렉션  4. 서블릿에서 사용자 요청을 처리하는 메서드에 인자로 전달되는 HttpServletRequest 객체에 대한 설명으로 틀린 것을 고르시오.(2) 주요 메서드로 getWriter(), sendRedirect(String location) 등이 ..

Backend 2024.07.07