no image
자바 [Programmers] 2단계 - 피보나치 수
틀린 코드class Solution { public int solution(int n) { int answer = fi(n); return answer % 1234567; } private int fi(int n){ if(n == 0){ return 0; }else if(n == 1){ return 1; } return fi(n-2) + fi(n-1); }} 위 코드 대로 했더니 시간 초과가 났다.단순 피보나치 구현 문제인 줄 알았는데 시간 초과가 났다는건 피보나치 구현을 dynamic programming을 써야된다는 것을 파악했다. 수정 코드cl..
2024.11.28
no image
자바 [Programmers] 2단계 - 올바른 괄호
import java.util.Stack;class Solution { boolean solution(String s) { boolean answer = true; Stack mystack = new Stack(); for(int i=0; i 1. Charater형의 Stack을 선언한다.2. 입력받은 s의 String형 길이만큼 반복문 수행3. 반복문은 ( 여는 괄호가 들어오면 push4. ) 닫는 괄호가 들어왔을 때, 스택이 비어 있으면 바로 return false해준다. 그 이유는 비어있을 때 ) 닫는 괄호가 들어왔다는 건 ( 여는 괄호랑 짝이 안맞다는 의미5. ) 닫는 괄호가 들어왔을 때, 스택이 비어 있지 않으면 ( 여는 괄호랑 짝이 맞는..
2024.11.25
no image
C++ [Algorithm] - 백준 10810 공 넣기
문제입출력문제 요약바구니는 N개가 있는데 1~N개까지의 바구니가 있고, 1~N번까지의 번호가 적힌 공이 있다.공을 M번 넣는데공을 넣을 바구니를 정하고정한 바구니에 모두 같은 번호가 적힌 공을 넣는다.바구니에 공이 있는 경우 들어있는 공을 빼고 새로운 공을 넣는다.출력할 땐 1번 바구니부터 N번 바구니에 들어있는 공의 번호를 출력 그림으로 알아보자 N이 5개 이므로 바구니는 이렇게 설정이 될 것이다. 1 2 31~2번 바구니까지 3번 공을 집어 넣는다.  3 4 43~4번 바구니까지 4번 공을 집어 넣는다. 1 4 11~4번 바구니까지 1번 공을 집어 넣는다.이때 바구니에 공이 이미 있는 경우에는 들어있는 공을 빼고 새로운 공을 넣는다. 2 2 22번 바구니에 2번 공을 집어 넣는다.이때 바구니에 공이 ..
2024.08.06
no image
C++ [Algorithm] - Swea 16910 원 안의 점(D3)
문제https://swexpertacademy.com/main/code/problem/problemDetail.do?problemLevel=3&contestProbId=AYcllbDqUVgDFASR&categoryId=AYcllbDqUVgDFASR&categoryType=CODE&problemTitle=&orderBy=FIRST_REG_DATETIME&selectCodeLang=ALL&select-1=3&pageSize=10&pageIndex=2 SW Expert AcademySW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!swexpertacademy.com문제 요약x^2+y^2^2인 격자점의 개수를 구하는 프로그램을 작성격자 점의 개수를 구하라고 하니 무조건 정수의 값만 구하면..
2024.08.05
no image
C++ [Algorithm] - 백준 11724 연결 요소의 개수
문제입출력문제 요약무방향 그래프에서 연결된 요소들의 개수를 찾는 것이다.무방향 그래프에서는 2차원 벡터를 사용해야 한다. 2차원 벡터2차원 벡터라는 것에대해 이해가 잘 안갔는데 자바의 List형태에 배열이랑 구조가 비슷하다.예제 입력 1을 2차원 백터로 표현하자면이런 식으로 표현이 될 것이다.이제 1부터 시작하여 1의 인접 리스트인 2,5를 dfs 진행하면 된다.코드#include #include #include using namespace std;vector V[1000];bool visited[1000];int cnt = 0;int N, M;int a, b;void init() { ios::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);}void df..
2024.08.05
no image
C++ [Algorithm] - 백준 24479 알고리즘 수업 - 깊이 우선 탐색 1
문제입출력문제 요약정점이 5개, 간선이 5개, 1번부터 출발한다.정점과 연결된 관계는 (1,4), (1,2), (2,3), (2,4), (3,4)로 연결되어 있다. 이런 그림으로 양방향 연결되어 있다.방문할 때는 인접 정점을 오름차순으로 정렬 후 방문한다고 했으니 정렬을 하자면이런 식으로 정렬이 되어 있을 것이다. 1번부터 방문을 한다면1번 -> 2번 -> 3번 -> 4번, 5번은  X 순으로 방문하게 될 것이다.코드#include #include #include using namespace std;vector V[100001];int visited[100001];int ans[100001];int depth = 1;void dfs(int x) { visited[x] = 1; ans[x] = depth+..
2024.08.02
no image
C++ [Algorithm] - 백준 10026 적록색약
문제입출력문제 요약적록색약은 빨강(R), 초록(G)를 차이를 구분하지 못한다고 한다. 즉 적록색약이 봤을 때는 R과 G를 동일선상에 놓아야한다.출력 값들을 보면 적록색약이 아닌 사람이 봤을 때의 구역 개수, 적록색약인 사람이 봤을 때 구역의 수를 출력해야한다.코드 구현 순서는 1. 적록색약이 아닌 사람이 봤을 때의 dfs 실행2. 적록색약의 dfs를 하기 전 G -> R 로 바꾸기3. visited 배열 false로 다시 초기화4. 적록색약의 dfs 실행코드#include #include using namespace std;int dx[4] = { -1,0,1,0 };int dy[4] = { 0,1,0,-1 };char map[100][100];bool visited[100][100];int N;int ..
2024.08.02
no image
C++ [Algorithm] - 백준 4963 섬의 개수
문제입출력문제 요약이 문제는 백준 1012 유기농 배추 문제에서 대각선 방향으로 이동하는 조건만 추가한 문제이다.https://dongyeop00.tistory.com/108 C++ [Algorithm] - 백준 1012 유기농 배추문제 간단하게 설명하자면 상하좌우 네 방향에 다른 배추가 위치한 경우 서로 인접하다. 즉 1덩어리로 본다.위 그림을 보면 총 5덩어리다. 코드#include #include using namespace std;int testCase, M, N, K;int xdongyeop00.tistory.com코드는 위 문제와 동일하나 dx, dy 배열에서 대각선으로 이동하는 값만 추가되었다.코드#include #include using namespace std;int dx[8] = { -..
2024.08.02