# 알고리즘
주어진 문제에 대한 하나 이상의 결과를 생성하기 위해 모호함이 없는 간단하고 컴퓨터가 수행 가능한 일련의 유한개의 명령을 순서적으로 구성한 것
짝지어 제거하기 (Level 2)
https://school.programmers.co.kr/learn/courses/30/lessons/12973짝지어 제거하기는, 알파벳 소문자로 이루어진 문자열을 가지고 시작합니다. 먼저 문자열에서 같은 알파벳이 2개 붙어 있는 짝을 찾습니다. 그다음, 그
더 맵게 (Level2)
https://school.programmers.co.kr/learn/courses/30/lessons/42626매운 것을 좋아하는 Leo는 모든 음식의 스코빌 지수를 K 이상으로 만들고 싶습니다. 모든 음식의 스코빌 지수를 K 이상으로 만들기 위해 Leo는
[백준] 1926 - 그림 (Python)
문제 링크 알고리즘 >* 그래프 탐색 tip > visited 테이블로 방문처리를 하면서 방문하지 않은 곳만 탐색 풀이 이차원 리스트를 전부 순회하면서 방문하지 않았던 곳만 dfs() 함수를 실행한다. dfs() 함수는 연결되어 있는 '숫자1' 만 상하좌우

[Programmers] 코딩테스트 입문 120878. 유한소수 판별하기
✔️ Problem URL 유한소수 판별하기 ✔️ Problem > 소수점 아래 숫자가 계속되지 않고 유한개인 소수를 유한소수라고 합니다. 분수를 소수로 고칠 때 유한소수로 나타낼 수 있는 분수인지 판별하려고 합니다. 두 정수 a와 b가 매개변수로 주어질 때, a/b가 유한소수이면 1을, 무한소수라면 2를 return하도록 solution 함수를 완성해주...

[알고리즘] 백준 1436 영화감독 숌 (JS)
영화감독 숌은 규칙을 구해서 풀어야만 하는 문제같지만규칙이 있다 하더라도 구하는 과정에서 시간이 오래걸리고간단하게 풀 수 있는 문제를 복잡한 과정을 거치게 된다.(함정문제라고 생각)'666'이 포함된 n번째 수를 구하라나도 규칙을 찾다가 이건 아니다 싶어서 정답을 봤다

[백준 14503. 로봇 청소기]
로봇 청소기와 방의 상태가 주어졌을 때, 청소하는 영역의 개수를 구하는 프로그램을 작성하시오.로봇 청소기가 있는 방은 $N \\times M$ 크기의 직사각형으로 나타낼 수 있으며, $1 \\times 1$ 크기의 정사각형 칸으로 나누어져 있다. 각각의 칸은 벽 또는
[ 이코테 ] 상하좌우 - 파이썬(Python)
N \* N 크기의 정사각형 공간 존재가장 왼쪽 위 좌표는 (1, 1), 가장 오른쪽 아래 좌표는 (N, N)여행자 A는 상, 하, 좌, 우 방향으로 이동 가능시작 좌표는 항상 (1, 1)L: 왼쪽 한 칸 이동, R: 오른쪽 한 칸 이동, U: 위쪽 한 칸 이동, D:
n^2 배열 자르기
문제를 보면 단순 노가다 후 문자열 처리를 하는 문제는 아님은 감이 온다.조금만 생각해보면, 2차원 배열은 눈속임이고 n\*n 배열에서 시작과 끝 지점을 n을 가지고 나눈 몫과 나머지라는 점을 캐치할 수 있다.그래서 나는 위 코드같이 짰는데, 아래 코드는 다른 사람이
[ 이코테 ] 볼링공 고르기 - 파이썬(Python)
문제 A와 B가 서로 무게가 다른 볼링공을 고른다. 볼링공의 개수 N개 공마다 무게가 적혀 있고, 1번부터 순서대로 부여 같은 무게의 공이 여러 개 있지만, 서로 다른 공으로 간주한다. 볼링공 무게는 1~M까지의 자연수 형태 입력 예시 > 1번) > 5 3 > 1 3

[알고리즘] 백준 2852 NBA농구 (JS)
NBA 농구는 시합 기록을 하는 프로그램을 만드는 작업이다.이기고있는 팀의 시간을 기록할 것먼저 문자열로 주어진 시간과 분을 분으로 합산하여 시간을 계산하였다.그리고 curScore === 1 ? A++ : B++; 점수 추가를 반복문 맨 아래에 둔 이유는A팀이 점수를

[알고리즘/Algorithm] 편집거리 알고리즘
편집 거리 알고리즘은 주어진 두 문자열 사이의 유사도를 판단하는 알고리즘이다.이때 사용할 수 있는 연산은 다음 3가지 이다.삽입(insert)삭제(remove)수정(modify)즉, 문자열 s1, s2가 주어졌을 때 위 3가지 연산을 사용해서 s1을 s2로 바꾸기 위해
피로도
이 문제는 보면 DFS 백트래킹으로 풀면 되겠다 느낌이 온다.하지만 로직을 깔끔하게 짜는 것에 집중하자.백트래킹은 dfs 전후로 visited 배열을 갱신하고 되돌리고 하는 과정의 반복이기 때문에 굳이 시작 순서를 주지 않아도 알아서 모든 경우를 탐색하는 방법이다.그대
백준 15829번: Hashing + 1380번: 귀걸이(JAVA)
https://www.acmicpc.net/problem/15829구현은 쉬운 편이다.int형 변수 n과 문자열 str을 받고str을 charToArray()를 통해 char배열로 만든뒤반복문을 통해 하나하나 31의 제곱을 곱하고 더하면 된다.마지막엔 1234
[BJ] 2470. 두 용액.java
[예시] 1. 1. n=4, {-9, -3, 29 50} 2. n=11, {-9, -7, -4, -1, 2, 3, 5, 6, 25, 30 60} <img src="https://velog.velcdn.com/images/psi1908/post/9423b6f7-52

[자료구조/알고리즘] LIS, LDS
길이가 n인 배열(리스트)의 일부 원소를 골라서 만든 부분 수열 중, 각 원소의 크기가 이전 원소의 크기보다 크다는 조건을 만족할 때 길이가 가장 긴 부분 수열을 최장 증가 부분 수열(LIS)이다.arr = \[10, 20, 10, 30, 20, 50] 인 경우 최장

[Programmers] 코딩테스트 입문 120876. 겹치는 선분의 길이
✔️ Problem URL 겹치는 선분의 길이 ✔️ Problem > 선분 3개가 평행하게 놓여 있습니다. 세 선분의 시작과 끝 좌표가 [[start, end], [start, end], [start, end]] 형태로 들어있는 2차원 배열 lines가 매개변수로 주어질 때, 두 개 이상의 선분이 겹치는 부분의 길이를 return 하도록 solution ...
[BOJ] 7576 토마토
문제 바로가기전체 소스코드 보기철수의 토마토 농장에서는 토마토를 보관하는 큰 창고를 가지고 있다. 토마토는 아래의 그림과 같이 격자 모양 상자의 칸에 하나씩 넣어서 창고에 보관한다. Baekjoon7576_img1창고에 보관되는 토마토들 중에는 잘 익은 것도 있지만,