Time does not change us. It just unfolds us.

Coding Test 61

[백준]19237 어른 상어 C++(실패)

55분 + 오류수정 ∞ https://www.acmicpc.net/problem/19237 19237번: 어른 상어 첫 줄에는 N, M, k가 주어진다. (2 ≤ N ≤ 20, 2 ≤ M ≤ N2, 1 ≤ k ≤ 1,000) 그 다음 줄부터 N개의 줄에 걸쳐 격자의 모습이 주어진다. 0은 빈칸이고, 0이 아닌 수 x는 x번 상어가 들어있는 칸을 의미 www.acmicpc.net 청소년 상어는 더욱 자라 어른 상어가 되었다. 상어가 사는 공간에 더 이상 물고기는 오지 않고 다른 상어들만이 남아있다. 상어에는 1 이상 M 이하의 자연수 번호가 붙어 있고, 모든 번호는 서로 다르다. 상어들은 영역을 사수하기 위해 다른 상어들을 쫓아내려고 하는데, 1의 번호를 가진 어른 상어는 가장 강력해서 나머지 모두를 쫓아..

Coding Test 2022.04.05

[백준]19236 청소년 상어 C++ (재귀)

https://www.acmicpc.net/problem/19236 19236번: 청소년 상어 첫째 줄부터 4개의 줄에 각 칸의 들어있는 물고기의 정보가 1번 행부터 순서대로 주어진다. 물고기의 정보는 두 정수 ai, bi로 이루어져 있고, ai는 물고기의 번호, bi는 방향을 의미한다. 방향 bi는 www.acmicpc.net 청소년 상어 시간 제한메모리 제한제출정답맞힌 사람정답 비율 1 초 (추가 시간 없음) 512 MB 7036 4335 2759 63.396% 문제 아기 상어가 성장해 청소년 상어가 되었다. 4×4크기의 공간이 있고, 크기가 1×1인 정사각형 칸으로 나누어져 있다. 공간의 각 칸은 (x, y)와 같이 표현하며, x는 행의 번호, y는 열의 번호이다. 한 칸에는 물고기가 한 마리 존재..

Coding Test 2022.04.04

[카카오]Lv2 양궁대회 C++ (재귀)

문제 설명 문제 설명 카카오배 양궁대회가 열렸습니다. 라이언은 저번 카카오배 양궁대회 우승자이고 이번 대회에도 결승전까지 올라왔습니다. 결승전 상대는 어피치입니다. 카카오배 양궁대회 운영위원회는 한 선수의 연속 우승보다는 다양한 선수들이 양궁대회에서 우승하기를 원합니다. 따라서, 양궁대회 운영위원회는 결승전 규칙을 전 대회 우승자인 라이언에게 불리하게 다음과 같이 정했습니다. 어피치가 화살 n발을 다 쏜 후에 라이언이 화살 n발을 쏩니다. 점수를 계산합니다. 과녁판은 아래 사진처럼 생겼으며 가장 작은 원의 과녁 점수는 10점이고 가장 큰 원의 바깥쪽은 과녁 점수가 0점입니다. 만약, k(k는 1~10사이의 자연수)점을 어피치가 a발을 맞혔고 라이언이 b발을 맞혔을 경우 더 많은 화살을 k점에 맞힌 선수가..

Coding Test 2022.03.24

[카카오] Lv2 [3차]압축 C++ (50점)

50점 맞는데 왜 틀린건지 이해가 안된다. 실행 케이스의 경우 1,2,3번은 맞고 4번의 테스트케이스가 틀리는데, "THATTHATISISTHATTHATISNOTISNOTISTHATITITISTHATTHATISISTHATTHATISNOTISNOTISTHATITITISTHATTHATISISTHATTHATISNOTISNOTISTHATITITISTHATTHATISISTHATTHATISNOTISNOTISTHATITITISTHATTHATISISTHATTHATISNOTISNOTISTHATITITISTHATTHATISISTHATTHATISNOTISNOTISTHATITITISTHATTHATISISTHATTHATISNOTISNOTISTHATITITISTHATTHATISISTHATTHATISNOTISNOTISTHATITI..

Coding Test 2022.03.24

[카카오] Lv2 주차 요금 계산 C++ (map 조회, split)

map 관련 함수에 대한 이해가 부족해서 1시간은 걸린 기분.. 문제 설명 문제 설명 주차장의 요금표와 차량이 들어오고(입차) 나간(출차) 기록이 주어졌을 때, 차량별로 주차 요금을 계산하려고 합니다. 아래는 하나의 예시를 나타냅니다. 요금표 기본 시간(분)기본 요금(원)단위 시간(분)단위 요금(원) 180 5000 10 600 입/출차 기록 시각(시:분)차량 번호내역 05:34 5961 입차 06:00 0000 입차 06:34 0000 출차 07:59 5961 출차 07:59 0148 입차 18:59 0000 입차 19:09 0148 출차 22:59 5961 입차 23:00 5961 출차 자동차별 주차 요금 차량 번호누적 주차 시간(분)주차 요금(원) 0000 34 + 300 = 334 5000 + ⌈..

Coding Test 2022.03.23

Lv2 예상 대진표 C++

문제 설명 △△ 게임대회가 개최되었습니다. 이 대회는 N명이 참가하고, 토너먼트 형식으로 진행됩니다. N명의 참가자는 각각 1부터 N번을 차례대로 배정받습니다. 그리고, 1번↔2번, 3번↔4번, ... , N-1번↔N번의 참가자끼리 게임을 진행합니다. 각 게임에서 이긴 사람은 다음 라운드에 진출할 수 있습니다. 이때, 다음 라운드에 진출할 참가자의 번호는 다시 1번부터 N/2번을 차례대로 배정받습니다. 만약 1번↔2번 끼리 겨루는 게임에서 2번이 승리했다면 다음 라운드에서 1번을 부여받고, 3번↔4번에서 겨루는 게임에서 3번이 승리했다면 다음 라운드에서 2번을 부여받게 됩니다. 게임은 최종 한 명이 남을 때까지 진행됩니다. 이때, 처음 라운드에서 A번을 가진 참가자는 경쟁자로 생각하는 B번 참가자와 몇 ..

Coding Test 2022.03.23

[COS Pro] 1급 5차 C++ (n진법,재귀)

63분 한문제 못풀었따~ 못 푼 문제 : 문제7) 재귀.. 그래프의 노드 수와 노드 연결 순서가 주어질 때, 몇 번째 연결에 사이클이 생기는지 알고 싶습니다. 예를 들어, 노드가 3개이고 노드를 [[1, 2], [1, 3], [2, 3]] 순으로 연결한다면 아래 그림과 같습니다. 따라서 3번째 연결에서 사이클이 생깁니다. 그래프의 노드 수 n, 노드 연결 순서 connections가 매개변수로 주어질 때, 몇 번째 연결에 사이클이 생기는지 return 하도록 solution 함수를 작성하려 합니다. 빈칸을 채워 전체 코드를 완성해주세요. 매개변수 설명 그래프의 노드 수 n, 노드 연결 순서 connections가 solution 함수의 매개변수로 주어집니다. * 그래프의 노드 수 n은 3 이상 10 이하..

Coding Test 2022.03.02

[COS Pro] 1급 4차 C++

빨간날 좋아! 오잉하는 문제들 때문에 82분 너무 오래 풀었다. 빈칸문제 6,7번을 풀다가 포기해서 넘기고 8~10 구현 문제를 풀었다리 문제 6) 어떤 자리 수 k가 주어졌을 때 각 자릿수의 k 제곱의 합이 원래 수가 되는 수를 자아도취 수라고 합니다. 예를 들어 153은 세 자리 자아도취 수입니다. 자연수 k가 매개변수로 주어질 때, k 자리 자아도취 수들을 배열에 오름차순으로 담아 return 하도록 solution 함수를 작성하려 합니다. 빈칸을 채워 전체 코드를 완성해주세요. 왼쪽이 내 답, 오른쪽이 정답 왜 왼쪽 자리수부터 생각했을꼬 오른쪽부터 했어야했는디; 문제 8) 1 이상 9 이하 숫자가 적힌 카드를 이어 붙여 숫자를 만들었습니다. 이때, 숫자 카드를 조합해 만든 수 중에서 n이 몇 번째..

Coding Test 2022.03.01

[COS Pro] 1급 3차 C++ (소수)

66분 문제4)ㅇㄴㄹㄴㅇ 두 문자열 s1과 s2를 붙여서 새 문자열을 만들려 합니다. 이때, 한 문자열의 끝과 다른 문자열의 시작이 겹친다면, 겹치는 부분은 한 번만 적습니다. 예를 들어 s1 = "ababc", s2 = "abcdab"일 때, 아래와 같이 s1 뒤에 s2를 붙이면 새 문자열의 길이는 9입니다. 그러나 s2 뒤에 s1을 붙이면 새 문자열의 길이는 8로, 더 짧게 만들 수 있습니다. 두 문자열 s1과 s2가 매개변수로 주어질 때, s1과 s2를 붙여서 만들 수 있는 문자열 중, 가장 짧은 문자열의 길이를 return 하도록 solution 함수를 완성해주세요. 제한 조건 두 문자열 s1과 s2가 solution 함수의 매개변수로 주어집니다. * s1과 s2의 길이는 1 이상 100 이하입니..

Coding Test 2022.02.28

[COS Pro] 1급 2차 C++ (조합)

(어제 못 푼 2차 48분 걸렸다. 문제4) 자연수가 중복 없이 들어있는 배열이 있습니다. 이 배열에서 합이 K의 배수가 되도록 서로 다른 숫자 세개를 고르는 방법은 몇 가지인지 세려고 합니다. 자연수가 들어있는 배열 arr가 매개변수로 주어질 때, 이 배열에서 합이 K의 배수가 되도록 서로 다른 숫자 세개를 고르는 방법의 가짓수를 return 하도록 solution 함수를 완성해주세요. 매개변수 설명 자연수가 들어있는 배열 arr가 solution 함수의 매개변수로 주어집니다. * arr의 길이는 3 이상 100 이하입니다. * arr에는 1 이상 1,000 이하의 자연수가 중복 없이 들어있습니다. * K는 1 이상 10 이하의 자연수입니다. return 값 설명 배열에서 합이 K의 배수가 되도록 서로..

Coding Test 2022.02.28

[COS Pro] 1급 1차 C++

1차 69분 빈칸 1 3:58 3:58 빈칸 2 6:08 2:10 빈칸 3 10:55 4:47 구현 4 13:57 P 3:02 구현 5 34:47 20:50 구현 6 45:38 10:51 빈칸 7 48:44 3:06 한줄 8 52:26 3:42 한줄 9 58:14 5:48 한줄 10 1:06:25 8:11 다시 4 1:09:25 3:00 가장 오래 풀었던 5번 소용돌이 수 다음과 같이 n x n 크기의 격자에 1부터 n x n까지의 수가 하나씩 있습니다. 이때 수가 다음과 같은 순서로 배치되어있다면 이것을 n-소용돌이 수라고 부릅니다. 소용돌이 수에서 1행 1열부터 n 행 n 열까지 대각선상에 존재하는 수들의 합을 구해야 합니다. 위의 예에서 대각선상에 존재하는 수의 합은 15입니다. 격자의 크기 n이 ..

Coding Test 2022.02.27

[COS Pro] 1급 체험 C++ (벡터 합, 최대/최소값)

COS Pro (Professional Coding Specialist)란? Python, C, C++, Java 에 대한 자격증으로 높은 수준의 프로그래밍 활용능력이 있음을 증명 할 수 있습니다. COS Pro (Professional Coding Specialist)는 시작부터 종료까지 100% 컴퓨터상에서 진행되는 CBT (Computer Based Test)로 평가방식이 정확함은 물론 시험 종료 즉시 시험 결과를 알 수 있습니다. 화요일까지 모의고사 6개 풀어보기 vector 합 헤더의 accumulate함수 int sum = std::accumulate(v.begin(), v.end(), 0); vector 순열 next_permutation함수 vector 최대값 max_element 함수 i..

Coding Test 2022.02.26

[카카오]Lv2 거리두기 확인하기 C++

1시간 틀린 테스트 케이스 때문에 수정하다보니 엄청 지저분해서 다시 풀었땅 첫번째 계속 틀린 테스트케이스 ["OOPOO", "OPOOO", "OOOOO", "OOOOO", "OOOOO"] -> 0 오른쪽 아래 대각선만 고려함 아예 새롭게 테이블이 존재하면 방문여부를 따져서 거리두기를 체크 문제 설명 개발자를 희망하는 죠르디가 카카오에 면접을 보러 왔습니다. 코로나 바이러스 감염 예방을 위해 응시자들은 거리를 둬서 대기를 해야하는데 개발 직군 면접인 만큼 아래와 같은 규칙으로 대기실에 거리를 두고 앉도록 안내하고 있습니다. 대기실은 5개이며, 각 대기실은 5x5 크기입니다. 거리두기를 위하여 응시자들 끼리는 맨해튼 거리1가 2 이하로 앉지 말아 주세요. 단 응시자가 앉아있는 자리 사이가 파티션으로 막혀 있..

Coding Test 2022.02.23

[카카오]Lv2 멀쩡한 사각형 C++ (최대공약수)

혼자 그림 그리면서 봐도 규칙을 못찾았는데 굉장히 간단한 규칙이였다... 나빼고 다 천재인듯 문제 설명 가로 길이가 Wcm, 세로 길이가 Hcm인 직사각형 종이가 있습니다. 종이에는 가로, 세로 방향과 평행하게 격자 형태로 선이 그어져 있으며, 모든 격자칸은 1cm x 1cm 크기입니다. 이 종이를 격자 선을 따라 1cm × 1cm의 정사각형으로 잘라 사용할 예정이었는데, 누군가가 이 종이를 대각선 꼭지점 2개를 잇는 방향으로 잘라 놓았습니다. 그러므로 현재 직사각형 종이는 크기가 같은 직각삼각형 2개로 나누어진 상태입니다. 새로운 종이를 구할 수 없는 상태이기 때문에, 이 종이에서 원래 종이의 가로, 세로 방향과 평행하게 1cm × 1cm로 잘라 사용할 수 있는 만큼만 사용하기로 하였습니다. 가로의 길..

Coding Test 2022.02.23

Lv2 짝지어 제거하기 C++ (Stack)

계속 시간초과 나다가 아래 블로그 참고하여 stack으로 이해했다. https://mungto.tistory.com/37 짝지어 제거하기 C++(팁스다운2017)[프로그래머스] ※ 저의 풀이가 무조건적인 정답은 아닙니다. 다른 코드가 좀더 효율적이고 좋을 수 있습니다. 다른사람들의 풀이는 언제나 참고만 하시기 바랍니다. 문제 주소입니다. https://programmers.co.kr/learn/c mungto.tistory.com 짝지어 제거하기 문제 설명 짝지어 제거하기는, 알파벳 소문자로 이루어진 문자열을 가지고 시작합니다. 먼저 문자열에서 같은 알파벳이 2개 붙어 있는 짝을 찾습니다. 그다음, 그 둘을 제거한 뒤, 앞뒤로 문자열을 이어 붙입니다. 이 과정을 반복해서 문자열을 모두 제거한다면 짝지어 ..

Coding Test 2022.02.16

SQL 문제풀이

샐러드 인생 닭발 삼겹살에 소주 들이키고 싶다. 프로그래머스 풀었던 문제들 답 정리 https://blog.naver.com/PostView.naver?blogId=d2420&logNo=221847509807&parentCategoryNo=&categoryNo=45&viewDate=&isShowPopularPosts=false&from=postList [프로그래머스]MySQL Lv1 아아아아악! 배운적도 없는 sql 문제 lv1 책보고 한 번 풀어보기... 1. 모든 레코드 조회하기 2.최댓값 구... blog.naver.com https://blog.naver.com/PostView.naver?blogId=d2420&logNo=221852107903&parentCategoryNo=&categoryNo=..

Coding Test 2022.02.11

[Java]카카오 Lv1 로또의 최고 순위와 최저 순위, 음양 더하기

10분 로또의 최고 순위와 최저 순위 문제 설명 로또 6/45(이하 '로또'로 표기)는 1부터 45까지의 숫자 중 6개를 찍어서 맞히는 대표적인 복권입니다. 아래는 로또의 순위를 정하는 방식입니다. 1 순위당첨 내용 1 6개 번호가 모두 일치 2 5개 번호가 일치 3 4개 번호가 일치 4 3개 번호가 일치 5 2개 번호가 일치 6(낙첨) 그 외 로또를 구매한 민우는 당첨 번호 발표일을 학수고대하고 있었습니다. 하지만, 민우의 동생이 로또에 낙서를 하여, 일부 번호를 알아볼 수 없게 되었습니다. 당첨 번호 발표 후, 민우는 자신이 구매했던 로또로 당첨이 가능했던 최고 순위와 최저 순위를 알아보고 싶어 졌습니다. 알아볼 수 없는 번호를 0으로 표기하기로 하고, 민우가 구매한 로또 번호 6개가 44, 1, 0..

Coding Test 2022.02.09

[Java]Lv1 신고 결과 받기(LinkedHashMap, Map, Set, 중복제거, 순서유지,getOrDefault

처음 자바로 문제를 풀어봤는데 두 개가 시간초과 났다~ 문제 설명 문제 설명 신입사원 무지는 게시판 불량 이용자를 신고하고 처리 결과를 메일로 발송하는 시스템을 개발하려 합니다. 무지가 개발하려는 시스템은 다음과 같습니다. 각 유저는 한 번에 한 명의 유저를 신고할 수 있습니다. 신고 횟수에 제한은 없습니다. 서로 다른 유저를 계속해서 신고할 수 있습니다. 한 유저를 여러 번 신고할 수도 있지만, 동일한 유저에 대한 신고 횟수는 1회로 처리됩니다. k번 이상 신고된 유저는 게시판 이용이 정지되며, 해당 유저를 신고한 모든 유저에게 정지 사실을 메일로 발송합니다. 유저가 신고한 모든 내용을 취합하여 마지막에 한꺼번에 게시판 이용 정지를 시키면서 정지 메일을 발송합니다. 다음은 전체 유저 목록이 ["muzi..

Coding Test 2022.02.07

[C++]카카오 Lv2 n진수 게임

41분 문제 설명 N진수 게임 튜브가 활동하는 코딩 동아리에서는 전통적으로 해오는 게임이 있다. 이 게임은 여러 사람이 둥글게 앉아서 숫자를 하나씩 차례대로 말하는 게임인데, 규칙은 다음과 같다. 숫자를 0부터 시작해서 차례대로 말한다. 첫 번째 사람은 0, 두 번째 사람은 1, … 열 번째 사람은 9를 말한다. 10 이상의 숫자부터는 한 자리씩 끊어서 말한다. 즉 열한 번째 사람은 10의 첫 자리인 1, 열두 번째 사람은 둘째 자리인 0을 말한다. 이렇게 게임을 진행할 경우, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 1, 0, 1, 1, 1, 2, 1, 3, 1, 4, … 순으로 숫자를 말하면 된다. 한편 코딩 동아리 일원들은 컴퓨터를 다루는 사람답게 이진수로 이 게임을 진행하기도 하는데,..

Coding Test 2022.01.18

[C++]카카오 Lv2 방금그곡(split함수 구현, string find함수)

27분 → Error 수정 1시간 초과 나는 문자열로 이렇게 장난치는 문제가 너무 싫다.. 너무 더럽고 치졸하게 푸는 기분... Error 원인 : '#' 코드 고려 → 다른 사람의 풀이를 보니 C#은 c로 표현해서 해결했다. 비일치 시 none 반환 find를 앞에서 찾고 끝내버림 → 남은 문자열에서 계속 찾도록 반복문 구현 반례 : "CCB" ["03:00,03:10,FOO,CCB#CCB", "04:00,04:08,BAR,ABC"] -> NONE이 아닌 "FOO" int idx = str.find("abc"); if(str.find("abc") == string::npos) { 위와 같이 int로 받을 때 찾는 값이 없으면 -1로 반환하고 있으면 해당 문자열 시작 위치를 반환한다. 반면에 int로 받..

Coding Test 2022.01.14