분류 전체보기

https://www.acmicpc.net/problem/15663문제N개의 자연수가 주어지고, M개를 고른 수열을 출력한다.조건1. 중복되는 수열을 출력하면 안된다.조건2. 사전 순으로 증가하는 순서로 출력한다.풀이사전 순으로 출력해야 했기 때문에 입력받은 N들을 sort() 로 정렬했다.2가지를 고려해야 했다.1. 똑같은 조합이 나오면 출력하면 안된다.3 14 4 2위의 입력의 경우, 결과가244 # 중복이여서 안됨 위와 같이 똑같은 수열 4가 중복해서 출력되면 안된다.2. 같은 수가 여러번 나올 수는 있다.아래와 같은 입력의 경우4 29 7 9 1아래와 같이 숫자가 중복 될수는 있다. (9 9)1 71 97 17 99 19 79 9 # 이건 가능 기본적으로 백트래킹을 이용해 풀었다.1의 경우를 해결..
문제&링크https://www.acmicpc.net/problem/1895 풀이1. 전체 이미지를 확인해야 하기에 완전 탐색을 사용한다.2. 필터의 크기가 3 x 3이기에 필터의 사각형의 왼쪽 위를 기준으로 두고 반복문을 사용한다. 즉 R과 C의 크기 -2까지 반복문 사용한다.3. 해당 필터 내에 있는 모든 값을 벡터 V에 삽입한다.4. 필터에 대한 반복문이 끝날 때 벡터 V를 오름차순으로 sort하고, 중간 값인 네 번째 인덱스를 벡터 ans에 삽입한다.5. 이미지의 모든 부분에 대해 필터를 씌우고 난 후 모아진 벡터 ans에 대해서 입력한 값 T보다 큰지 작은지 판단 후 정답인 cnt를 구한다. 코드#include #include #include using namespace std;int img[41..
https://www.acmicpc.net/problem/14888풀이1. N의 범위가 크지 않으므로, 재귀함수를 적용할 수 있다.2.특정 재귀가 끝난 이후에는, 값을 특정 값으로 덮어 씌우면 오류가 발생하므로 직전 값으로 되돌릴 수 있는 로직을 구성하는 것이 중요하다.3. 이 문제의 경우, 계산 이후 연산자 배열의 수를 -1한 이후 다시 +1을 하는 것으로 적용하며, 재귀함수의 매개변수로 현재 까지의 계산 값을 넘겨줌으로써 계산이 끝나 최대값과 최소값을 갱신한 이후 다시 이전 상태로 돌아올 수 있다.제출 코드import sysn = int(input())nums = list(map(int, input().split()))sign = list(map(int, input().split()))min_val ..
문제N개의 수로 이루어진 수열 A1, A2, ..., AN이 주어진다. 또, 수와 수 사이에 끼워넣을 수 있는 N-1개의 연산자가 주어진다. 연산자는 덧셈(+), 뺄셈(-), 곱셈(×), 나눗셈(÷)으로만 이루어져 있다.우리는 수와 수 사이에 연산자를 하나씩 넣어서, 수식을 하나 만들 수 있다. 이때, 주어진 수의 순서를 바꾸면 안 된다.예를 들어, 6개의 수로 이루어진 수열이 1, 2, 3, 4, 5, 6이고, 주어진 연산자가 덧셈(+) 2개, 뺄셈(-) 1개, 곱셈(×) 1개, 나눗셈(÷) 1개인 경우에는 총 60가지의 식을 만들 수 있다. 예를 들어, 아래와 같은 식을 만들 수 있다.1+2+3-4×5÷61÷2+3+4-5×61+2÷3×4-5+61÷2×3-4+5+6식의 계산은 연산자 우선 순위를 무시하..
문제 https://www.acmicpc.net/problem/5361 문제 풀이1. 각 테스트 케이스마다 필요한 부품의 수를 split을 통해 한 줄로 입력받는다.2. 각 부품들의 가격을 개수에 곱한 후 format 함수를 통해 소수점 둘째자리까지만 출력한다.3. range함수를 통해 1과 2를 처음 입력받은 n번만큼 반복한다.   Coden = int(input())sum = 0for i in range(n): a,b,c,d,e = map(float,input().split()) sum = 350.34 * a + 230.90 * b + 190.55*c + 125.30 * d + 180.90 * e print("${0:.2f}".format(sum))
문제 풀이아이디어 문제이다.천진수를 이용하여 [1,1,1,1, ..., 1000,1000,1000, ... ,1000]이라는 수열을 고안한다. (1과 1000은 각각 1000개씩 있다.)위 수열은 연속한 범위의 합으로 1,000,000까지의 모든 숫자를 만들 수 있다. 코드print(2000) arr = [1 for i in range(1000)] + [1000 for _ in range(1000)] for i in arr:     print(i, end=' ')
https://www.acmicpc.net/problem/4963문제 풀이1. r과 c를 입력받기 + 0 0 을 입력받는 순간 탈출\2. arr 리스트에 섬의 상황 입력하기3. 비교를 위한 check 리스트 생성4. arr 전체를 돌며 flood_fill 함수 실행5. flood_fill 함수가 끝나면 섬 1개를 의미하므로 cnt 1 증가flood_fill 함수대각선까지 감안하여야 하므로 x,y에 더해줄 d 생성함수의 인자인 x,y에 맞는 nx, ny에 맞게 수정 -> 추가 flood_fill 실행 문제 코드def flood_fill(x, y): for i in range(len(d)): nx, ny = x + d[i][0], y + d[i][1] if 0
https://www.acmicpc.net/problem/1002문제문제풀이1. 터렛 두 개의 x, y 좌표를 비교하여 변수 선언한다2. 좌표를 비교하여 두 개의 원을 설정한다3. 중심거리와 위치의 관계를 이용하여 두 원의  접점의 개수를 구한다.코드
https://www.acmicpc.net/problem/10974문제풀이숫자 N을 입력받아 1부터 N까지의 수로 이루어진 리스트를 만든다. 그리고 순열 모듈을 통하여 리스트에 있는 수들의 순열을 구한다.소스코드from itertools import permutations as pmN = int(input())arr = [i for i in range(1, N+1)]for t in pm(arr, N): print(' '.join(map(str, t)))
문제&링크https://www.acmicpc.net/problem/1238 풀이1. 각자 마을 별로 특정 마을까지 갔다가 오는 최소 거리를 계산해야 하기에, 다익스트라 알고리즘을 사용한다.2. 시작점과 끝점 가중치가 주어져 있기에 끝점과 가중치를 pair로 하는 벡터 행렬에 시작점을 기준으로 저장한다.3. 다익스트라 함수에서 시작점과 끝점을 파라미터로 받는다.4. fill 함수를 이용해서 모든 거리를 INF로 초기화한다.5. 우선순위 큐를 활용하여 가중치가 가장 낮은 값 먼저 탐색하도록 한다. 이때 우선순위 큐는 기본적으로 max heap 이기에 가중치를 음수로 하여 저장하고, 값을 사용할 때는 -를 붙여 양수로 사용한다.6. 시작점 s의 가중치를 0으로 초기화한 후 우선순위 큐에 삽입하고, 거리 또한 ..
문제https://www.acmicpc.net/problem/17413코드#include #include #include #includeusing namespace std;int main(){ string s; getline(cin, s); int intag = 0; string ans = ""; string word = ""; for (int i = 0; i ') { ans += s[i]; intag = 0; } //숫자나 알파벳 else { if (intag == 1) { ans += s[i]; } else { word = s[i] + word; } } } ans += word; cout 알고리즘 분류 : 구현문제 해설 : 태그 안일 때는 체크해주면서 문..
0. Q & A- 다른 언어로 문제를 풀어도 되나요?문제 자료에 나오는 코드가 파이썬, C++이라 해당 코드를 읽을 줄 아시면 상관 없습니다.- 모의 테스트는 어떻게 진행되나요?백준 - 그룹 - 연습 기능을 사용하여 백준 문제를 제공할 예정입니다.- 문제는 얼마나 풀게 되는 것인가요?기초 알고리즘 스터디: 1주차 ~ 7주차는 20문제, 8주차는 14문제 이상을 풀게 됩니다.코딩테스트 준비 스터디: 일주일에 4문제 이상을 풀게 됩니다.- 모의 테스트 예시1. 알고리즘 기초 스터디대상- 본격적인 알고리즘 지식을 배우기 전에 기본적인 구현 실력을 쌓고 싶으신 분- 1학년 코딩 수업을 들으신 분들 (추천)사용 언어- Python 3계획1. 깃북 자료를 읽은 후 깃북에 나와있는 알고리즘 문제를 통해 공부를 합니다..
KauKoala
'분류 전체보기' 카테고리의 글 목록 (8 Page)