https://www.acmicpc.net/problem/3449 3449번: 해밍 거리 입력을 여러 개의 테스트 케이스로 이루어져 있다. 첫째 줄에는 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 두 줄로 이루어져 있다. 각 줄에는 이진수가 하나씩 주어진다. 두 이진 www.acmicpc.net 문제 해밍 거리란 두 숫자의 서로 다른 자리수의 개수이다. 두 이진수가 주어졌을 때, 해밍 거리를 계산하는 프로그램을 작성하시오. 입력 입력을 여러 개의 테스트 케이스로 이루어져 있다. 첫째 줄에는 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 두 줄로 이루어져 있다. 각 줄에는 이진수가 하나씩 주어진다. 두 이진수는 길이가 서로 같고, 100자리를 넘지 않는다. 출력 각 테스트 케이스에 ..
Koala - 13기
https://www.acmicpc.net/problem/2745 2745번: 진법 변환 B진법 수 N이 주어진다. 이 수를 10진법으로 바꿔 출력하는 프로그램을 작성하시오. 10진법을 넘어가는 진법은 숫자로 표시할 수 없는 자리가 있다. 이런 경우에는 다음과 같이 알파벳 대문자를 www.acmicpc.net 문제 B진법 수 N이 주어진다. 이 수를 10진법으로 바꿔 출력하는 프로그램을 작성하시오. 10진법을 넘어가는 진법은 숫자로 표시할 수 없는 자리가 있다. 이런 경우에는 다음과 같이 알파벳 대문자를 사용한다. A: 10, B: 11, ..., F: 15, ..., Y: 34, Z: 35 입력 첫째 줄에 N과 B가 주어진다. (2 ≤ B ≤ 36) B진법 수 N을 10진법으로 바꾸면, 항상 10억보다..
https://www.acmicpc.net/problem/6502 6502번: 동혁 피자 대전 ACM-ICPC Regional가 끝나면, 대회 참가자들은 다같이 카이스트 근처의 동혁 피자에 간다. 대회는 5시간동안 진행되므로, 참가자는 모두 배가 매우 고프다. 피자를 최대한 빨리 먹기 위해서, 큰 www.acmicpc.net 풀이 원안에 들어갈 수 있는 가장 큰 사각형은 원의 지름을 대각선으로 하는 사각형이다. 그러므로 입력받은 가로와 세로의 길이를 각각제곱해서 더하고 루트를 씌운 수가 입력받은 반지름 * 2 이하이면 식탁에 놓여질 수 있는지 없는 지가 나올 것이다. 또한 , 0을 입력받기 전까지 계속 입력받는 것을 고려해야한다. import java.io.*; import java.util.*; imp..
https://www.acmicpc.net/problem/3181 문제 꿍은 만사가 귀찮아서 말을 하기도 귀찮아 한다. 그래서 하려는 말을 대신해줄 줄임말을 만들려고 하는데 나름 규칙을 만들었다. 하려는 말은 최소 하나 이상의 단어를 포함하는데 각 단어들은 정확히 한칸의 공백으로 구분이 된다. 줄임말을 만들때는 각 단어의 앞글자를 따서 만들어지는데 다음의 단어들은 쓸모없는 단어들이므로 무시한다. 'i', 'pa', 'te', 'ni', 'niti', 'a', 'ali', 'nego', 'no', 'ili'. 하지만 이 단어들이 하려는 말의 맨 앞에 올경우 매우 중요하다고 판단되어 무시하면 안되고 줄임말에 포함하여야 한다. 줄임말을 만들기도 귀찮아진 꿍을 위해 줄임말을 만들어주는 프로그램을 작성하라. 단,..
문제 https://www.acmicpc.net/problem/1699 1699번: 제곱수의 합 어떤 자연수 N은 그보다 작거나 같은 제곱수들의 합으로 나타낼 수 있다. 예를 들어 11=32+12+12(3개 항)이다. 이런 표현방법은 여러 가지가 될 수 있는데, 11의 경우 11=22+22+12+12+12(5개 항)도 가능하다 www.acmicpc.net Algorithm 해당 자연수가 몇 개의 제곱수의 합으로 나타낼 수 있는지 찾는 문제이다. 먼저, 해당 자연수가 제곱수라면 1개의 제곱수의 합으로 나타낼 수 있으므로 제곱수를 판단해야 한다. 따라서 math모듈을 이용하여 제곱수 판별 함수를 만들었다. #제곱수 확인 함수 제곱수면 1을 return. def decide(n): if math.sqrt(n)..
2×n 타일링 문제 2×n 크기의 직사각형을 1×2, 2×1 타일로 채우는 방법의 수를 구하는 프로그램을 작성하시오. 아래 그림은 2×5 크기의 직사각형을 채운 한 가지 방법의 예이다. 입력 첫째 줄에 n이 주어진다. (1 ≤ n ≤ 1,000) 출력 첫째 줄에 2×n 크기의 직사각형을 채우는 방법의 수를 10,007로 나눈 나머지를 출력한다. 해결 이 문제는 다이나믹 프로그래밍을 사용해 풀 수 있습니다. 2xn 크기의 직사각형을 채우는 방법을 찾는 것을 큰 문제로 보고, 이를 2x(n-1)과 2x(n-2) 크기의 직사각형을 채우는 방법으로 나눕니다. 우선 입력값 N을 받고 dp 배열을 선언한 후 초기값을 설정하고, 2x1 크기의 직사각형을 채우는 방법은 1가지, 2x2 크기의 직사각형을 채우는 방법은 ..
그리디와 DP 아이디어를 이용해서 풀이한다. 현재위치에서 +n, x2, x3하였을 때 DP 값을 갱신해 나간다. # 그리디 + DP def solution(x, y, n): answer = -1 DP = [float('inf') for _ in range(y+1)] #init DP[x]=0 for i in range(x,y+1): if i+n
https://www.acmicpc.net/problem/1764 1764번: 듣보잡 첫째 줄에 듣도 못한 사람의 수 N, 보도 못한 사람의 수 M이 주어진다. 이어서 둘째 줄부터 N개의 줄에 걸쳐 듣도 못한 사람의 이름과, N+2째 줄부터 보도 못한 사람의 이름이 순서대로 주어진다. www.acmicpc.net 문제 김진영이 듣도 못한 사람의 명단과, 보도 못한 사람의 명단이 주어질 때, 듣도 보도 못한 사람의 명단을 구하는 프로그램을 작성하시오. 입력 첫째 줄에 듣도 못한 사람의 수 N, 보도 못한 사람의 수 M이 주어진다. 이어서 둘째 줄부터 N개의 줄에 걸쳐 듣도 못한 사람의 이름과, N+2째 줄부터 보도 못한 사람의 이름이 순서대로 주어진다. 이름은 띄어쓰기 없이 알파벳 소문자로만 이루어지며, ..
문제 설명 N개의 도시를 모두 순회하는 가장 짧은 비용을 찾아내는 TSP문제이다. 같은 도시는 중복으로 가면 안되기에 순열로 모든 조합을 나열하여 완전 탐색으로 풀었다. 1번 도시부터 N번 도시까지 걸리는 비용을 더하고 마지막으로 N번 도시에서 1번 도시로 돌아오는 비용을 더해주었다. Python3로 제출하면 시간초과가 났는데, PyPy3로 제출하니까 통과가 되어서 찾아봤는데, Python3의 실행 시간이 오래 걸려서 개선하고자 만든게 PyPy3인데 모든 경우에 PyPy3가 속도가 우세한 것은 아니라고 한다. 따라서 상황에 맞춰 적철하게 사용하라고 읽었는데, 아직 어떤 상황에 무엇을 적용해야 할 지는 모른다. 구현 from itertools import permutations n = int(input()..
1149번: RGB거리 (acmicpc.net) 1149번: RGB거리 첫째 줄에 집의 수 N(2 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 각 집을 빨강, 초록, 파랑으로 칠하는 비용이 1번 집부터 한 줄에 하나씩 주어진다. 집을 칠하는 비용은 1,000보다 작거나 www.acmicpc.net 문제유형 *다이나믹 프로그래밍 문제 RGB거리에는 집이 N개 있다. 거리는 선분으로 나타낼 수 있고, 1번 집부터 N번 집이 순서대로 있다. 집은 빨강, 초록, 파랑 중 하나의 색으로 칠해야 한다. 각각의 집을 빨강, 초록, 파랑으로 칠하는 비용이 주어졌을 때, 아래 규칙을 만족하면서 모든 집을 칠하는 비용의 최솟값을 구해보자. 1번 집의 색은 2번 집의 색과 같지 않아야 한다. N번 집의 색..
문제 https://school.programmers.co.kr/learn/courses/30/lessons/258705 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 참조 https://tech.kakao.com/2023/12/27/2024-coding-test-winter-internship/ 2024 카카오 겨울 인턴십 코딩테스트 문제해설 안녕하세요, 카카오에서 계정시스템 개발을 맡고 있는 잭입니다.2024 카카오 채용 연계형 겨울 인턴십 코딩 테스트가 지난 11월 25일(토)에 5시간에 걸쳐 진행되었습니다. 문제를 이해하면 쉽게 해 tech...
문제 나코더 기장 재민이는 동아리 회식을 준비하기 위해서 장부를 관리하는 중이다. 재현이는 재민이를 도와서 돈을 관리하는 중인데, 애석하게도 항상 정신없는 재현이는 돈을 실수로 잘못 부르는 사고를 치기 일쑤였다. 재현이는 잘못된 수를 부를 때마다 0을 외쳐서, 가장 최근에 재민이가 쓴 수를 지우게 시킨다. 재민이는 이렇게 모든 수를 받아 적은 후 그 수의 합을 알고 싶어 한다. 재민이를 도와주자! 입력 첫 번째 줄에 정수 K가 주어진다. (1 ≤ K ≤ 100,000) 이후 K개의 줄에 정수가 1개씩 주어진다. 정수는 0에서 1,000,000 사이의 값을 가지며, 정수가 "0" 일 경우에는 가장 최근에 쓴 수를 지우고, 아닐 경우 해당 수를 쓴다. 정수가 "0"일 경우에 지울 수 있는 수가 있음을 보장할..