전체 글 239

[JAVA] 프로그래머스 level2 도넛과 막대 그래프

https://school.programmers.co.kr/learn/courses/30/lessons/258711 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 코딩테스트 연습 > 2024 KAKAO WINTER INTERNSHIP > 도넛과 막대 그래프 문제 설명도넛 모양 그래프, 막대 모양 그래프, 8자 모양 그래프들이 있습니다. 이 그래프들은 1개 이상의 정점과, 정점들을 연결하는 단방향 간선으로 이루어져 있습니다. 크기가 n인 도넛 모양 그래프는 n개의 정점과 n개의 간선이 있습니다. 도넛 모양 그래프의 아무 한 정점에서 출발해 이용한 적 없는 간선..

& VS &&

자바에서 &와 &&는 둘 다 논리 연산자이다. 하지만 차이점이 있다.& (비트 연산자 및 논리 연산자)비트 연산자&는 비트 연산자로 사용할 때, 두 피연산자의 비트 단위로 AND 연산을 수행합니다.int a = 5; // 0101 in binaryint b = 3; // 0011 in binaryint result = a & b; // 0001 in binary논리 연산자&는 논리 연산자로 사용할 때, 두 피연산자가 모두 true 일 때만 결과가 true가 됩니다.두 피연산자가 모두 평가된다. (단일 조건 체크라도 오른쪽 피연산자까지 평가)boolean a = false;boolean b = true;boolean result = a & b; // result is falsea에서 이미 false여서 r..

Spring/Java 2024.06.04

MarkDown 파일 이미지 삽입 문제

이슈 내용스프링 강의를 들으면서 노션이나 티스토리에 기록하는 게 힘들어서스프링 프로젝트 안에 기록하는 방식으로 공부 방법을 바꿨었다.처음에는 text 파일에 적으면서 기록을 하다가 이미지를 삽입을 해야 하는 경우가 있어서.md 파일로 기록 파일을 바꾸었다.이미지를 프로젝트 안에 저장을 하고 경로를 넣어줬는데인텔리제이 editor로 잘 보이던 이미지가 깃허브에 push 하니까 안 보이는 이슈가 생겼다.→ 이유 : 로컬에 저장된 이미지 경로와 깃허브에 저장된 이미지 경로가 다르다.당연히 깃허브에 저장된 이미지 경로를 해당 파일에 경로로 넣어주면 깃허브에서는 보이지만로컬에서는 안 보이게 된다. ㅠㅠ 이슈 해결 방법그냥 로컬에서 저장된 이미지를 해당 파일에 드래그해서 넣어봤다.당연히 이미지니까 절대 경로 아니면..

IntelliJ IDEA 2024.05.27

백준 플레티넘5 달성!!!

드디어 백준 플래티넘을 달성했다!!! 기존에 사용하던 백준 계정을 계속 사용했으면 더 일찍 찍었을듯하다.하지만 마음가짐을 다시 한다는 의미로 새로 만든 아이디여서 그런가 정이 많이 갔고 생각보다 금방 도달했다. 프로그래머스도 이제 꽤 많이 풀었다.이제 프로그래머스 알고리즘 고득점 kit에서 모르는 알고리즘은 없는듯하다.제일 많이 어려웠던 부분은 역시 그리디, DP, 시뮬레이션이다. 그리고 아직 바킹독의 KMP 알고리즘은 진입장벽이 높아서 아직 듣지도 못하고 있다.사실 들어야 하나 의문이 들기도 한다. KMP 알고리즘이 기업 코테에서 나왔다는 얘기를 들어본적이 없다....  최근에 소프티어 부트캠프 1차 코딩 테스트를 봤다. 인생 첫 코테였는데 생각보다 많이 떨리고 시간이 부족했다.문제를 한번 다 읽어보고..

Algorithm 2024.05.26

[Topological Sorting] 위상 정렬

목차알고리즘 설명알고리즘 Simulation알고리즘 구현백준 2252 줄 세우기 골드3참고자료알고리즘 설명실생활에서 예시 : 교과 이수 제도대학교에는 선수 과목이라는 개념이 존재한다.→ 프로그래밍1 → 프로그래밍2 / 일반수학 → 공업수학여기 내가 대학교에서 수업을 들어야 하는 과목들이 있다.모든 과목을 수강하고 싶다고 하면 어떤 순서로 과목을 들어야 할까?수강을 하는 순서로는 다양한 방법들이 존재한다.1) 이산수학, 프로그래밍1, 프로그래밍2, 자료구조, 알고리즘, 객체지향 프로그래밍2) 프로그래밍1, 프로그래밍2, 객체지향 프로그래밍, 자료구조, 이산수학, 알고리즘……이 때 과목을 정점으로 나타내고 과목의 선후 관계를 간선으로 나타낸 상황을 생각해보자.그러면 이런 그래프가 나온다. 위상 정렬(Topo..

Algorithm 2024.05.25

[MySQL] 실행 문제

오랜만에 DB 공부를 위해서 MySQL을 실행하려고 하는데 계속 해서 TestConnection에 실패하였다.이때 시간이 2024년 05월 21일 2:30pm …. 문제를 해결하기 위해서 시도했던 과정들환경변수 재설정TestConnection 실패MySQL 최신 버전으로 재설치 (MySQL Installer를 사용해서 MySql Server & MySql Workbenck 둘 다 설치)설치를 하는데 start server에서 계속 문제가 있는 걸 확인했다.서비스 수동 시작 (MySQL Installer에서 만들었던 서비스 MySQL) 실패 1053에러 발생MySQL(서비스) → 속성 → 로그온 변경 (로컬 시스템 계정 & 서비스와 데스크톱 상호 작용 허용 체크)서비스 수동 시작 (MySQL Install..

DataBase/MySQL 2024.05.21

스레드 컨텍스트 스위칭 vs 프로세스 컨텍스트 스위칭

목차목표컨텍스트 스위칭(context switching)프로세스를 제어하기 위한 정보 모음 (PCB Process Control Block)프로세스, 스레드 구조스레드 컨텍스트 스위칭프로세스 컨텍스트 스위칭스레드 컨텍스트 스위칭이 더 빠른 이유컨텍스트 스위칭이 미치는 간접적인 영향?유저 관점에서 컨텍스트 스위칭이란?목표컨텍스트 스위칭은 무엇인가왜 스레드 컨텍스트 스위칭이 프로세스 컨텍스트 스위칭 보다 더 빠른지 이해컨텍스트 스위칭(context switching)CPU/코어에서 실행 중이던 프로세스/스레드가 다른 프로세스/스레드로 교체되는 것오늘날 프로세스는 무조건 1개 이상의 스레드를 가진다.CPU 기본 실행 단위 = 스레드그래서 프로세스가 다른 프로세스로 교체된다는 말은 프로세스(스레드)에서 다른 프..

OS level에서 어떻게 여러 프로그램이 동시에 실행될까?

목차목표용어 정리단일 프로세스 시스템멀티 프로그래밍멀티 태스킹스레드멀티 스레딩멀티 스레딩 VS 멀티 프로세싱참고 자료목표어떻게 여러 프로그램이 동시에 실행되는지 원리를 이해 용어 정리프로그램(Program)컴퓨터가 실행할 수 있는 명령어들의 집합프로세스(Process)컴퓨터에서 실행 중인 프로그램각각의 프로세스는 독립된 메모리 공간을 할당 받는다명령어들과 데이터를 가진다.CPU(Central Processing Unit)명령어를 실행하는 연산 장치메인 메모리(Main Memory)프로세스가 CPU에서 실행되기 위해 대기하는 곳IO(Input/Output)파일을 읽고 쓰기네트워크의 어딘가와 데이터를 주고 받는 것입출력 장치와 데이터를 주거나 받는 것단일 프로세스 시스템한 번에 하나의 프로그램만 실행됨→ 원..

[Java] 프로그래머스 level3 입국심사

https://school.programmers.co.kr/learn/courses/30/lessons/43238# 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr코딩테스트 연습 > 이분탐색 > 입국심사문제 설명n명이 입국심사를 위해 줄을 서서 기다리고 있습니다. 각 입국심사대에 있는 심사관마다 심사하는데 걸리는 시간은 다릅니다. 처음에 모든 심사대는 비어있습니다. 한 심사대에서는 동시에 한 명만 심사를 할 수 있습니다. 가장 앞에 서 있는 사람은 비어 있는 심사대로 가서 심사를 받을 수 있습니다. 하지만 더 빨리 끝나는 심사대가 있으면 기다렸다가 그곳으로 가..

JVM Run Time Data Area

목차JVM(Java Virtual Machine) 실행 데이터 영역애플리케이션이 어떻게 실행되는가?Stack 메모리Heap 메모리CPU는 어떻게 스택 메모리에서 데이터를 찾을까?메서드 호출과 this쓰레기 객체(Garabage Object)JVM(Java Virtual Machine) 실행 데이터 영역메서드 영역(Method Area)클래스 메타데이터, 상수, 정적 변수 저장 모든 스레드가 공유 클래스 로더(Class Loader)에 의해서 로드된다. 힙(Heap)모든 객체와 배열이 할당되는 메모리 영역 모든 스레드가 공유스택(Stack)각 스레드 마다 독립적인 스택을 가진다.메서드 호출 시 생성되는 스택 프레임이 여기에 저장 각 스택 프레임은 지역 변수, 매개 변수, 리턴 주소, 이전 스택 프레임의 B..