알고리즘 스터디를 시작하기 위해 사람들을 모았고 Notion, Discord와 구글 시트지를 통해 스터디를 관리하려 한다!어떻게 해야 성공적인 스터디를 마칠 수 있을지 계속 고민하면서 Notion이나 블로그로 코드를 저장하기 위해 velog를 가입하게 되었다.
우리는 사람의 덩치를 키와 몸무게, 이 두 개의 값으로 표현하여 그 등수를 매겨보려고 한다. 어떤 사람의 몸무게가 x kg이고 키가 y cm라면 이 사람의 덩치는 (x, y)로 표시된다. 두 사람 A 와 B의 덩치가 각각 (x, y), (p, q)라고 할 때 x > p
세준이는 양수와 +, -, 그리고 괄호를 가지고 식을 만들었다. 그리고 나서 세준이는 괄호를 모두 지웠다.그리고 나서 세준이는 괄호를 적절히 쳐서 이 식의 값을 최소로 만들려고 한다.괄호를 적절히 쳐서 이 식의 값을 최소로 만드는 프로그램을 작성하시오.첫째 줄에 식이
문제괄호 문자열(Parenthesis String, PS)은 두 개의 괄호 기호인 ‘(’ 와 ‘)’ 만으로 구성되어 있는 문자열이다. 그 중에서 괄호의 모양이 바르게 구성된 문자열을 올바른 괄호 문자열(Valid PS, VPS)이라고 부른다. 한 쌍의 괄호 기호로 된
문제ACM 호텔 매니저 지우는 손님이 도착하는 대로 빈 방을 배정하고 있다. 고객 설문조사에 따르면 손님들은 호텔 정문으로부터 걸어서 가장 짧은 거리에 있는 방을 선호한다고 한다. 여러분은 지우를 도와 줄 프로그램을 작성하고자 한다. 즉 설문조사 결과 대로 호텔 정문으
문제https://www.acmicpc.net/problem/1463시간제한이 0.15초로 짧고 힌트를 보면 뭔가 상향식? 이기 때문에 그리디보다는 효율적인 알고리즘 설계를 위해 다이나믹 프로그래밍(동적계획법)을 사용하라는 것 같다. 동적계획법은 점화식처럼 사
https://www.acmicpc.net/problem/10773입력받은 정수가 0일때 가장 최근에 쓴 수를 지운다.즉, 스택을 이용해서 pop을 해준다.첫 코드입력받은 것을 바로 붙여줬는데 낭비인 것 같아서 아래 코드로 고쳐주었다.둘 다 정답이지만 메모리
https://www.acmicpc.net/problem/10814나이는 오름차순으로 정렬해준다.나이가 같으면 먼저 가입한 사람을 넣어준다.2차 배열로 만들기 위해 member를 전역변수로 해주어야 하는데, for문에 넣고 있었다.나이는 sort를 사용해주면
https://www.acmicpc.net/problem/10816가지고 있는 카드의 갯수, 카드의 종류를 입력찾아야하는 카드의 갯수, 카드의 종류를 입력처음 시도는 단순하게 이중 for문으로 시도했다가 시간초과가 발생했다.시간을 줄이기 위해서 탐색과정이 어떤
https://www.acmicpc.net/problem/10828시간제한 0.5초스택 구현하기클래스로 스택을 구현해주었다.push 명령일 경우 -> 출력 x, 입력만 하기pop 명령일 경우 -> 맨 위 정수 빼고 출력, 없으면 -1 출력size 명령일 경우-
https://www.acmicpc.net/problem/10845저번에 푼 스택 클래스를 기반으로 front, back을 추가해주고 pop부분만 수정해주었다.처음에 pop에서 제거하는 것만 만들고 출력문을 작성하지 않아서 틀렸었다.메모리 : 31256 KB
https://www.acmicpc.net/problem/1676문제 설명이 너무 간단해서 무슨 뜻인지 잘 모르겠다.팩토리얼 함수를 만들어서 해석해보자 10을 넣으면 3628800이 출력된다. → 8을 만났으니 0은 2개가 있었다.뒤집어서 0의 갯수를 세어
https://www.acmicpc.net/problem/10866deque를 이용하면 쉽게 풀 수 있었다.메모리: 34216 KB시간: 72ms연속으로 자료구조를 사용해보는 문제들이였기에 비슷하지만 다양한 기능을 확인할 수 있었다.
https://www.acmicpc.net/problem/10989정렬하는 문제이지만 시간제한이 5초이고 메모리 제한이 8MB 시간이 널널하지만 메모리효율을 따져야한다. 항상 사용하던 방식으로 정렬하면 메모리초과가 발생했다. 방법을 찾아보니 계수정렬이
https://www.acmicpc.net/problem/11050이항계수의 공식을 활용해서 팩토리얼로 문제를 풀었다.
https://www.acmicpc.net/problem/11650N개의 좌표x 좌표 오름차순같으면 → y좌표 오름차순어쩌피 sort를 사용하면 앞에걸 기준으로 정렬하니까 괜찮지 않을까? 싶어 시도해보았다.결과는 제대로 나오지만 틀렸다고 나왔다.정확하게 판단해
https://www.acmicpc.net/problem/1620문제가 심심해서 만든 것 같아서 필요한 정보만 요약해보았다.입력 포켓몬 개수: n , 문제 개수: m 출력 입력 받은 것이 숫자이면 해당 숫자에 맞는 포켓몬 이름을 출력 문자라면 포켓몬이
https://www.acmicpc.net/problem/11651어제 푼 문제랑 다르게 y좌표가 우선순위가 높게 설정해야 한다.메모리: 74564KB시간: 416 ms
https://www.acmicpc.net/problem/11866한 곳을 중심으로 빼낸다.k-1번 반시계 방향으로 회전했을 때 12시 방향의 것을 빼도록 만든다.예시 순서 1,2,3,4,5,6,7 2,3,4,5,6,7,1 3,4,5,6,7,1,2 →
https://www.acmicpc.net/problem/15829영문 소문자만 입력한다.입력한 문자열을 해시를 통해 특정 해시값으로 변환한다.r= 31 에 항의 거듭제곱을 하고 1234567891을 나누어서 출력한다.a ~ z까지 각각 1 ~26을 의미한다.
https://www.acmicpc.net/problem/18111내가 생각해본 것1초 인벤토리에서 블록 하나를 꺼내서 좌표에 가장 위에 있는 블록위에 놓는다. → 좌표의 블록 +1, 인벤토리 -1 2초 좌표 가장 위에 있는 블록을 제거하고 인벤토리에
https://www.acmicpc.net/problem/1764입력값 듣도 못한 사람 N, 보도 못한 사람 M N개 듣도 사람 이름 N+2부터 보도 못한 사람 이름 M개 출력값듣도 보도 못한 사람, 즉 N과 M의 교집합을 사전순으로 출력아이디어1)
https://www.acmicpc.net/problem/1697BFS 사용 최단 시간을 구하는 것이기에 BFS를 사용한다. 최대 위치와 방문 여부를 저장하는 리스트를 만들어준다.BFS 함수 큐를 만들어주고 시작위치를 넣은 다음, 큐가 비어있지 않은 동안
https://www.acmicpc.net/problem/1780크기를 자르는 방법 1) 종이가 모두 같은 수라면 그대로 사용한다. 2) 첫 경우가 아니라면 종이를 같은 크기의 종이9개로 자르고, 각각의 잘린 종이에 대해 1을 반복 설명 문제의 첫번째 조
https://www.acmicpc.net/problem/1931문제 설명 각 회의 마다 시작시간, 끝나는 시간이 존재한다. 최대한 많이 회의실을 사용해야 한다. 설명 빨리 끝날수록 더 많은 회의를 진행할 수 있다. 예제를 끝나는 것 기준으로 정렬하
https://www.acmicpc.net/problem/1927최소 힙을 사용해보는 문제이다.최소 힙 최소힙은 트리구조를 사용한다. 작을수록 우선순위가 높아진다. 왼쪽 child = parent2, 오른쪽 child = parent2 +1 배열로 구현하
https://www.acmicpc.net/problem/2606문제 설명 한 컴퓨터가 바이러스에 걸리면 연결되어 있는 컴퓨터는 바이러스에 걸린다. → 구해야 하는 것과 같다. 풀이 해당 index와 연관되어 있는 것을 넣어준다. 예제 입력 시 \
https://www.acmicpc.net/problem/2644x와 y의 촌수를 나타내야한다. x 부터 시작하여 y가지 도달할 수 있으면 출력하고 아니라면 -1을 출력한다.y에 도달하면 여태까지 탐색할 때 카운트 되던 값(떨어져 있는 거리)를 출력한다.전부
https://www.acmicpc.net/problem/14503현재 칸 청소되지 않은 경우, 현재 칸을 청소한다. → 방문여부 체크주변 4칸 중 청소되지 않은 빈 칸이 없는 경우 → 방향 필요 dx, dy북 - 0, 동 - 1, 남 - 2, 서 - 3 시계
https://www.acmicpc.net/problem/21781,1 1,32,1 2,33,1 3,3입력 그래프에서 하나씩 들어가도록 만든다. \[1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1,
https://www.acmicpc.net/problem/2579조건 계단을 건널 때 2칸 or 1칸 연속 3칸 X → 시작점 제외 → 두번을 한칸씩 올랐으면 다음은 무조건 두칸 마지막은 반드시 밟아야 한다. 접근법 i번째 계단에 도달했을 경우i-
https://www.acmicpc.net/problem/2630입력 한 변의 길이 N N x N 종이의 정보 출력 하얀색 종이의 개수, 파란색 종이의 개수 접근법잘린 영역에 모든 색상이 같은지 판별한다.하얀색이면 하얀색 카운트, 파란색이면 파란색
https://www.acmicpc.net/problem/9205입력 테스트 케이스 수 t 편의점 개수 n 상근이네 집 좌표 편의점 좌표 페스티벌 좌표 출력 페스티벌 도착 시 happy 맥주가 바닥나서 이동을 못할 경우 sad 접근법 집 →
https://www.acmicpc.net/problem/7569입력 상자의 크기 가로 세로 높이 → M, N, H 토마토들의 정보 1: 익음 0: 안익음 \-1: 토마토가 없음 출력 토마토가 다 익는데 최소 걸리는 날 이미 다 익어있다면 0
https://www.acmicpc.net/problem/2667입력 지도의 크기 N 줄마다 N개의 자료 → N x N 출력 총 단지수, 각 단지내 집의 수 오름차순 처음에 예제에서 원하는 값이 나와서 제출했더니 틀렸다고 나왔다.생각해보니 오름차순으
https://www.acmicpc.net/problem/5430RDD의 경우 뒤집기, 제거, 제거를 수행해야 하는데 1,2,3,4로 예를 들면4,3,2,1 → 3,2,1 → 2,1R: 순서를 뒤집는다.D: 첫 번째 수를 버린다. -> 배열이 비어있는데 실행되
입력 N: O의 개수 M: S의 길이 S: I,O로만 이루어진 문자열 출력 S에 Pn이 몇군데 포함되어있는지 접근법 연속으로 문자열 S가 나온다면 +1을 카운트 해준다. P1: IOI P2: IOIOI P3: IOIOIOI 규칙을 생각해보면 N은
https://www.acmicpc.net/problem/6064입력 T : 테스트 케이스 한줄 씩 : M, N, x, y 1 ≤ x ≤M 1≤ y ≤N 출력 k : <x:y>가 k번째 해를 나타내는 것 출력 못하면 -1 출력 접근법
https://www.acmicpc.net/problem/5014입력 F : 총 층 개수 S : 현재 위치한 층 G : 목표 층 U : 위로 U층을 가는 버튼 D : 아래로 D층을 가는 버튼 출력 S에서 G로 가기 위해 눌러야 하는 버튼의 수 최솟
https://www.acmicpc.net/problem/2529입력부등호 개수, 부등호 나열된 것출력관계를 만족하는(부등호가 성립하는) 최대, 최소 정수 나열 리스트 출력숫자와 부등호를 인자로 받고 성립하지 않으면 False, 성립하면 True를 반환dfs함
https://www.acmicpc.net/problem/20055입력길이 N, 내구도가 0인 칸의 개수 기준 K각 칸마다 내구도 출력종료될때 몇번째 단계였는지로봇과 벨트를 deque를 사용해서 회전하고 (음수이면 왼쪽 양수이면 오른쪽으로 회전)로봇이
https://www.acmicpc.net/problem/1912입력주어지는 정수의 개수 nn개의 정수들 출력연속된 수들중 최댓값이전값과 연속해서 더하는데값이 더 작아질 경우 pass한다.dpi = max(arri, dpi-1 + arri)
https://www.acmicpc.net/problem/14226입력보내는 이모티콘 개수 S출력이모티콘 S개를 만들기 위해 필요한 시간의 최솟값고려할 것 최단 시간을 구하는 문제 → BFS 활용화면에 있는 이모티콘을 모두 복사해서 클립보드에 저장한다.클립보