일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 메뉴 리뉴얼
- 토마토
- Comparator
- 데이터
- 컴퓨터 구조
- sw expert academy
- 백준
- 컴퓨터구조
- 조합
- 코테
- 다단계 칫솔 판매
- 프로그래머스
- 부동소수점
- 운영 체제
- 자바
- 표 편집
- 고정소수점
- 괄호 회전하기
- 오블완
- Comparable
- Call-by-Value
- 요세푸스
- 순열
- 기능 개발
- 베스트 앨범
- 구현
- swea
- 도둑질
- 티스토리챌린지
- java
- Today
- Total
목록분류 전체보기 (36)
감자는 아직 꿈을 꾼다.
알고리즘 : BFS 이번에 2024년도 하반기 삼성전자 코테에서도 이러한 풀이 방식을 활용한 문제가 나왔었다.훨씬 더 어려운 구현 문제 였지만 스테디하게 활용되는 방식이다.문제설명링크참조https://www.acmicpc.net/problem/4179 내풀이1. 불을 먼저 진행시킨다.불을 먼저 진행시키는 이유는 불의 진행은 지훈이에게 영향을 주지만 , 영향을 받지는 않는다.우선 불을 진행시키고 dist배열에 시간을 기록한다. 2. 지훈이가 진행한다.지훈이가 진행할때 이동하는 위치가 배열을 벗어나면 성공적으로 벗어난 것이므로 현재거리+1출력지훈이가 진행 -> 불 거리 배열의 숫자보다 크면 , 불이 번진곳이므로 가지 못한다 continue -> 진행 가능 : 현재 거리 + 1 & 큐에 추가 만약 지훈이의 큐..
알고리즘 : BFS토마토 시리즈로서 2차원인 7576번과 3차원인 7569번을 설명하도록 하겠다.문제설명 : 7576번 토마토https://www.acmicpc.net/problem/7576링크 참조 내 풀이 이 문제는 시작점이 여러개 일경우의 BFS 문제이다.문제에서도 주어진 것처럼 토마토의 위치가 여러군데에서 시작하고BFS를 따로따로 진행하면 dist배열 초기화가 먼저 이루어져서 겹치는 부분에 대해 처리가 정확히 되지 않는다.간단하게 이 문제를 풀이하면 시작점들을 큐에 집어넣고 BFS를 시작하면 된다.왜냐하면 큐의 특성상 FIFO 이므로 시작점들을 넣고 BFS를 돌리면 순차적으로 각 시작점 위치에서 BFS가 돌아가면서 실행이 되기 때문이다. 큐의 특성으로 거리순으로 저장되는 것 만약에 스택이였으면 하..
1. 컴퓨터 구조를 알아야 하는 이유2. 컴퓨터 구조의 큰 그림3. Seven Great Ideas In Computer Architecture1. 컴퓨터 구조를 알아야 하는 이유😊컴퓨터 구조를 왜 알아야 할까요?문제해결을 위해서 ! 우리는 코딩을 하다 보면 에러가 발생하고, 여러가지 문제 상황에 직면합니다.물론 단순히 프로그래밍 언어 입장에서의 문법 실수 일 수도 있지만,더 광범위하게 HW 공간 부족으로 인해 생긴 문제일 수도있고, 다양한 원인이 존재할 수 있습니다. 예를 들어서 웹사이트를 개발한다고 가정하면 우리는 서버컴퓨터가 필요합니다.어떤 사양의 서버 컴퓨터를 선택할지는 CPU와 메모리등을 어떤 것을 선택할지 직접 판단해야합니다.이는 바로 성능, 용량, 비용의 문제에 직면합니다.문제라고 보긴 ..
이분 탐색은 순차탐색으로 풀면 시간복잡도가 터져서 풀지 못하는 문제를 시간 복잡도를 LogN으로 줄여서 탐색의 시간을 줄여준다. 기본적으로 시작 인덱스와 끝 인덱스를 활용해서, 중간 인덱스 값을 구해서 값을 비교하면서 진행한다.기본 조건으로 정렬이 되어 있어야한다.당연한 말이지만 정렬이 되어있지 않으면, 탐색 과정에서 숫자의 대소 비교가 의미없다. 알고리즘에서 이분 탐색을 활용하는 것을 설명하겠다.문제의 해답 코드로 설명한다. Ref : https://blog.encrypted.gg/985 1. 가장 기본적인 이분 탐색-> 시간복잡도 lgN이 필요할 경우 사용 문제 백준 1920번 https://www.acmicpc.net/problem/1920 import java.io.BufferedReader;i..
String 문제예외상황만 잘 처리하면 되는 문제다. https://www.acmicpc.net/problem/3613 내 풀이 StringBuilder의 사용법을 익힐수 있는 좋은 문제다.deleteCharAt() -> 해당 인덱스 문자 삭제insert() -> 해당 인덱스 앞에 문자 삽입indexOf() -> 포함 되있으면 해당 시작 인덱스 반환 import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.*;public class Solution { public static void main(String[] args) throws IOException { ..
String 문제자바의 String 메소드를 활용해서 풀 수 있는 문제3가지 방식으로 풀이를 설명한다문제 설명https://www.acmicpc.net/problem/9996 내 풀이 주어진 패턴을 * 를 기준으로 split하여 앞부분과 뒷부분을 나누고substring을 활용해서 주어진 문자열과 같은지 확인한다.주의할 점은 주어진 문자열이 first와 second의 합보다 작은 것에 예외처리또한 split할 때 그냥 * 로 하면 아래와 같은 에러가 뜨게된다.**Dangling meta character ' * ' near index 0+, * , ^ 로 나누고자 할 때도 발생하는 오류로**앞에 \ 기호 두개를 붙여야 된다. import java.io.BufferedReader;import java.io...
😁Call - By - Value vs Call - By - ReferenceC/C++를 경험한 사람이라면 모두 위 주제에 대하여 어느 정도는 알고 있을 것이다.포인터,&주소참조자? 이런 개념들 말이다. 하지만 오늘 C/C++에 대해 말하려 하는 게 아니다. 위의 기준은 인수를 전달하는 방식의 차이로 구분된다.자바는 어떻게 인수를 전달할까? 결론은 자바는 무조건 Call - By - Value 다!! 🖥️Call - By - Value ?-> 변수의 복사본을 전달 ( 값을 복사 ) 인수로 변수의 복사값을 전달하는 방식이다. 함수를 호출하면 스택프레임에 영역이 할당된다.main역시도 함수고 스택영역에 할당 되어있다.main에서 지역변수 a,b를 선언하고 새롭게 함수를 호출해서 인자로 전달하면main의 ..
알고리즘 : 시뮬레이션문제 설명https://swexpertacademy.com/main/learn/course/lectureProblemViewer.do SW Expert AcademySW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!swexpertacademy.com 🪟내 풀이 삼성식 시뮬레이션 문제이다.물론 실제 삼성전자 코테를 이번 하반기에 가서 본 입장으로선 그것보다는 귀여운 수준의 문제지만생각지도 못한 실수를 해서 고생했다.내가 한 실수는 set에 자표를 저장하고 사용할 때split으로 나눠서 쓰는게 아니라 단순하게 charAt한다음 - '0'해서 사용한 것이다.이렇게 사용하면 당연히 안되는 게, 좌표 크기가 2자리 수가 되면 사고가 나는 것이다.어이없는 실수를 했..
컴퓨터 구조와 운영 체제, 시스템 프로그래밍은 묶어서 공부해야 되는 주제라고 생각한다.시스템 프로그래밍에 관련된 건 컴퓨터 구조나 운영체제에서 기초 지식으로 살짝씩 필요한 부분만 정리해서 갈 예정이다.전공 과목을 수강하면서 깊이감 있게 배웠지만, 어디론가 사라졌고 내 기억속 구석에 자리잡고 있는 것같다.그 기억을 끄집어 내고, 서적과 다양한 블로그를 참고해서 내용을 정리할 것이다.개발을 진행하면서 느끼는 건 CS공부가 생각보다 훨씬 중요하다는 것이다.그래서 더 확실하게 개념을 잡고자 정리하려는 것이고완벽하게 이해해서 면접때 물어보면 자연스럽게 대답할 수있는 수준을 만들려고 한다.내용을 정리하면서 관련된 면접 질문도 맨마지막 하단에 추가할 예정이다.CS 관련된 내용을 정리하는 글을 작성하며 상당히 유연하게..
알고리즘 : BFS + DP좌표에서 이동할 수 있는 4가지 방향에 대하여 저장하는 배열을 선언하여 DP+BFS를 진행.문제 설명https://school.programmers.co.kr/learn/courses/30/lessons/67259 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 😁내 풀이 처음에는 이전의 방향성을 유지해서, 최선의 선택을 내리도록 하게 알고리즘을 구상했다.하지만 배열의 사이즈가 크지 않고, 4가지 방향성에 대해서 탐색을 진행해도 지장이 없을 것 같아서좌표평면에 위치에 4가지 방향의 cost를 담는 배열을 선언해서 저장한 후 최종 위치의 4가지 방향값 중최솟값을 return하게..