본문 바로가기

Algorithm

(2139)
(C++) - 백준(BOJ) 17129번 : 윌리암슨수액빨이딱따구리가 정보섬에 올라온 이유 https://www.acmicpc.net/problem/17129 17129번: 윌리암슨수액빨이딱따구리가 정보섬에 올라온 이유 첫째 줄에 정보섬 2층의 크기 n과 m이 주어진다. (1 ≤ n,m ≤ 3000, 4 ≤ n×m ≤ 9×106) 이후 n행 m열에 걸쳐 0, 1, 2, 3, 4, 5로만 구성된 Ai,j가 주어진다. Ai,j와 Ai,j+1사이에 공백은 주어지지 않는다. 2, www.acmicpc.net bfs문제였습니다. 📕 풀이방법 📔 입력 및 초기화 *정보섬의 정보를 char형으로 받아야 시간초과가 나지 않습니다. int형으로 받게 되면 시간초과가 납니다. 900만번의 scanf를 char형으로 받으셔야 합니다. 1. n ,m을 선언 후 입력받습니다. 2. board에 정보섬의 정보를 cha..
(C++) - 백준(BOJ) 17266번 : 어두운 굴다리 https://www.acmicpc.net/problem/17266 17266번: 어두운 굴다리 인하대학교 후문 뒤쪽에는 어두운 굴다리가 있다. 겁쟁이 상빈이는 길이 조금이라도 어둡다면 가지 않는다. 따라서 굴다리로 가면 최단거리로 집까지 갈수 있지만, 굴다리는 어둡기 때문에 빙 www.acmicpc.net 이분탐색 문제였습니다 📕 풀이방법 📔 입력 및 초기화 1. n, m, 가로등의 위치를 저장할 일차원 배열 lamp를 선언합니다. 2. n, m을 입력 받고 m개의 lamp 위치를 입력받습니다. 📔 풀이과정 가로등의 적절한 위치를 mid로 두어 이분탐색을 시행합니다. 가로등이 제대로 n만큼의 굴다리 길이를 비추는 지 확인하기 위해 구역을 3군데로 나눕니다. 1. 0번 위치 ~ lamp[0] : 길이는 ..
(C++) - 프로그래머스(월간 코드 챌린지 시즌3) : 없는 숫자 더하기 https://programmers.co.kr/learn/courses/30/lessons/86051 코딩테스트 연습 - 없는 숫자 더하기 0부터 9까지의 숫자 중 일부가 들어있는 배열 numbers가 매개변수로 주어집니다. numbers에서 찾을 수 없는 0부터 9까지의 숫자를 모두 찾아 더한 수를 return 하도록 solution 함수를 완성해주세요. 제한 programmers.co.kr for, if문을 써보는 간단한 문제였습니다. 📕 풀이방법 📔 입력 및 초기화 나온 숫자를 체크하기 위한 일차원 배열 ck를 선언합니다. 📔 풀이과정 1. numbers를 순회하면서 나온 수를 index로 하여 해당 값을 ck[index] = 1로 만들어줍니다. 2. ck를 순회하며 0인 부분을 answer에 모두..
(C++) - 백준(BOJ) 16932번 : 모양 만들기 https://www.acmicpc.net/problem/16932 16932번: 모양 만들기 N×M인 배열에서 모양을 찾으려고 한다. 배열의 각 칸에는 0과 1 중의 하나가 들어있다. 두 칸이 서로 변을 공유할때, 두 칸을 인접하다고 한다. 1이 들어 있는 인접한 칸끼리 연결했을 때, 각각의 www.acmicpc.net 아이디어가 필요한 bfs였습니다. 📕 풀이방법 📔 입력 및 초기화 n(행), m(열), groupNum(그룹번호), groupCk(그룹 체크 배열), board(입력받을 2차원 배열), ck(board 방문여부 확인 배열) dr,dc(인접 4방향 확인용 배열), areaPerGroup(그룹당 영역을 의미하는 unordered_map)을 선언합니다.n행, m열 입력 후 board에 n x..
(C++) - 백준(BOJ) 13140번 : Hello World! https://www.acmicpc.net/problem/13140 13140번: Hello World! N이 주어질 때 hello + world = N을 만족하는 서로 다른 한 자리 자연수(0 포함) d, e, h, l, o, r, w를 구해서 아래 그림과 같은 형태로 출력하는 프로그램을 작성하여라. 단, h와 w는 0이 될 수 없다. www.acmicpc.net brute force 문제였습니다. 📕 풀이방법 📔 입력 및 초기화 덧셈 결과를 입력받을 result를 선언 후 입력받습니다. 조회를 빠르게 하기 위해 unordered_map을 사용했습니다. 순열을 돌 일차원 배열 nums를 선언합니다. 📔 풀이과정 "helowrd"에 대해 임의의 수를 부여합니다. 10개 (0 ~ 9)의 숫자에서 순서 상관..
(C++) - 프로그래머스(위클리 챌린지) : 6주차 https://programmers.co.kr/learn/courses/30/lessons/85002 코딩테스트 연습 - 6주차_복서 정렬하기 복서 선수들의 몸무게 weights와, 복서 선수들의 전적을 나타내는 head2head가 매개변수로 주어집니다. 복서 선수들의 번호를 다음과 같은 순서로 정렬한 후 return 하도록 solution 함수를 완성해주세요 programmers.co.kr 정렬 및 구현문제였습니다. 📕 풀이방법 📔 입력 및 초기화 승률, 자기자신보다 무거운 복서를 이긴 횟수, 선수 번호를 저장할 vector 변수들을 선언합니다. 그리고 몸무게 정보도 전역변수로 이용하기 위해 따로 저장합니다. player를 weights.size()만큼 1씩 증가해 선수들의 번호를 저장해줍니다. 📔 풀..
(C++) - 백준(BOJ) 14467번 : 소가 길을 건너간 이유 1 https://www.acmicpc.net/problem/14467 14467번: 소가 길을 건너간 이유 1 3번 소는 위치 1, 0, 1에서 관찰되었으므로 길을 최소 두 번 건넜음을 확인할 수 있다. 4번 소도 길을 한 번 건넜으며, 나머지 소는 길을 건넌 기록이 확인되지 않는다. www.acmicpc.net 반복문과 분기문을 사용해보는 문제였습니다. 📕 풀이방법 📔 입력 및 초기화 10마리 소의 위치를 나타낼 일차원 배열 cow, 관찰 횟수 n, 정답을 출력할 변수 ans를 int형으로 선언합니다. cow의 값을 -1로 초기화해줍니다. 📔 풀이과정 매 루프마다 a, b를 선언 후 입력합니다. a는 소의 번호, b는 소의 위치를 의미합니다. 1. 처음 소의 위치가 -1인 경우에는 소의 초기 위치를 정한..
(C++) - 백준(BOJ) 8723번 : Patyki https://www.acmicpc.net/problem/8723 8723번: Patyki Pierwszy wiersz wejścia zawiera trzy liczby całkowite a, b, c (1 ≤ a, b, c ≤ 1000), oznaczające odpowiednio długości pierwszego, drugiego i trzeciego patyka. www.acmicpc.net 수식을 세우고 분기문을 사용해보는 문제였습니다. 📕 풀이방법 📔 입력 및 초기화 방 3개인 일차원 배열 a, 정삼각형인지 직각삼각형인지 판별하는 bool 변수 f1, f2 를 선언합니다. 그 후 세 수를 입력받습니다. 그 세 수를 오름차순으로 정렬합니다. 📔 풀이과정 1. 세 수가 모두 같으면 정삼각형이므로 ..