Uknow's Lab.
article thumbnail
[자바] Swing과 DFS로 미로 생성기 만들기
언어/Java 2023. 7. 30. 01:57

https://uknowblog.tistory.com/364 [알고리즘] 그래프 탐색 - 깊이 우선 탐색(DFS)와 너비 우선 탐색(BFS) 그래프 탐색 정점(Node, Vertex)과 간선(Edge)로 이루어진 그래프. 이 그래프를 탐색하는 방법에는 대표적으로 두 가지 방법이 있습니다. 깊이 우선 탐색(DFS, Depth-First Search)와 너비 우선 탐색(BFS, Bread uknowblog.tistory.com 위 DFS/BFS 글을 쓰기 위해 자료조사를 하고 있을 때 였습니다. DFS의 예시로 좋은게 뭐가 있을까 찾던 중에 한 충격적인 영상을 보게 되었습니다. https://www.youtube.com/watch?v=0kaHIfrB3T4&ab_channel=DaveStephens DFS를..

article thumbnail
[자바] for, while문에 라벨링 붙이기
언어/Java 2023. 7. 19. 00:40

위와 같은 이중 for문이 있습니다. 위 코드에서 break문은 어떤 반복문을 탈출할까요? 가장 가까운 반목문인 안쪽 반복문 입니다. 하지만, j가 5가 될때 두 반복문 모두 탈출하고 싶다면 어떻게 해야 할까요? for문 바깥쪽, 혹은 첫 번째 for문 안쪽에 flag 변수를 두고, j == 5가 됬을 때, flag를 true로 바꿈으로써 두 반복문을 모두 탈출할 수 있습니다. 하지만 별도의 flag를 두어 관리하는게 조금 번거로워 방법을 찾아보던 중, for문에 라벨링을 붙이는 방법을 알게 되었습니다. 바깥쪽 for문에 outer라는 이름으로 라벨링을 붙여주고, 안쪽 for문에서 해당 반복문에 break를 걸 수 있게 되었습니다. 바깥쪽 반복문을 탈출하므로 안쪽 반복문 역시 자연스레 탈출하게 됩니다. ..

article thumbnail
상속과 자바 Stack 클래스의 문제점
언어/Java 2023. 6. 20. 17:34

Stack 스택이란 LIFO(Last In Fist Out)를 지원하는 자료구조로써, 가장 나중에 들어간 것이 가장 빨리 나오는 형태입니다. 후입 선출이라고도 하죠. 이는 접시처럼, 가장 위에 있는 접시(가장 나중에 쌓은 접시) 부터 꺼내야 하는 것과 비슷합니다. Ctrl + Z나 브라우저 뒤로가기 버튼 등도 대표적인 예시입니다. 자바의 Stack 클래스 실행결과 : 3, 2, 1 (개행문자 생략) 꽤 많이 사용되는 자료구조인 만큼, 자바의 표준 라이브러리에서도 Stack을 이미 지원하고 있습니다. push로 stack에 데이터를 넣고, pop을 사용해 가장 최근의 데이터부터 꺼낼 수 있습니다. Stack은 push를 통해 데이터를 집어넣는구나! 근데 add는 뭐지? 스택에 데이터를 넣는 메소드는 pus..

article thumbnail
자바, 코틀린을 위한 인텔리제이(Intellij IDEA) 설치방법
언어/Java 2023. 3. 8. 00:12

Intellij IDEA Intellij IDEA는 Jetbrains 사에서 제작한 IDE로, Eclipse와 함께 자바/코틀린 진영의 대표적인 IDE 입니다. 자바를 처음 시작할때, 이클립스로 개발을 시작하였는데, 이후에 인텔리제이를 맛본 순간... 정말 헤어나올 수가 없었습니다. '우수성과 인체 공학이 담긴 Jetbrains Java IDE.' 라는 슬로건은 그야말로 인텔리제이를 나타내기 충분하다고 생각합니다. 설치방법 https://www.jetbrains.com/ko-kr/idea/download/#section=windows IntelliJ IDEA 다운로드: 우수성과 인체 공학이 담긴 JetBrains Java IDE www.jetbrains.com 위 링크로 들어가 Ultimate(유료) C..

article thumbnail
[Java] 자바 다운로드 및 설치 방법 및 환경 변수 설정
언어/Java 2023. 3. 7. 23:37

최근 서브 노트북이 급격히 느려져서 포맷을 했는데, 자바 설치하는 방법을 어디 정리해놓고 보면 좋겠다는 생각이 들어 이렇게 글로 적어봅니다. 자바 설치 https://www.oracle.com/java/technologies/downloads/ Download the Latest Java LTS Free Subscribe to Java SE and get the most comprehensive Java support available, with 24/7 global access to the experts. www.oracle.com 자바는 오라클 홈페이지에서 다운로드 받을 수 있는데요. 예전에 처음 자바를 설치할 땐, 회원가입을 해야 다운로드가 가능했는데 요즘엔 그냥 다운로드가 되네요. 자바는 SE와 ..

article thumbnail
[Java] 자바 Swing을 사용한 GUI 숫자 야구 게임
언어/Java 2023. 2. 18. 01:14

앞서 포스팅했던 2048과 마찬가지로, 자바를 처음 배울 당시, Swing 파트를 배울 즈음 만들었던 프로젝트 입니다. https://uknowblog.tistory.com/2 [Java] 숫자 야구 게임 어렸을 적 많이 해봤던 숫자 야구 게임. ​ 입력한 값의 숫자와 정답의 숫자의 같은 자릿수의 숫자가 같다면 Strike ​ 자릿수는 다르나 같은 숫자가 있다면 Ball 이며, ​ 3 Strike 일 경우 게임을 승 uknowblog.tistory.com 숫자 야구 게임은 이전에 콘솔창 버전에서는 다룬 적이 있는데요. 해당 로직을 기반으로 한 GUI 버전입니다. 총 10번의 기회 안에 숫자를 맞추면 됩니다. 프로그램엔 두 가지 자바 클래스 파일이 있는데, 실행을 담당하는 Main.java와 프로그램 내부..

article thumbnail
[Java] 자바 Swing을 사용한 GUI 2048
언어/Java 2023. 2. 18. 00:56

자바를 처음 배우고, 2학기에 자바의 GUI와 Swing을 배우며, 무언가 프로그램을 만들어보고 싶다는 마음에 만들어봤던 2048 게임입니다. 자바를 처음 배울때라 내부 로직은 꽤나 스파게티 코드이고, 지금보면 왜 이렇게 짰을까 하는 부분도 꽤 많습니다. 알고리즘도 사실 잘 모르던 시절이라 숫자 병합 로직이 꽤 비효율적이고, 제대로 작동이 되는게 신기할 정도입니다 ㅎㅎ; 조작방법은 단순히 상, 하, 좌, 우 방향키를 조작해 같은 숫자들끼리 합칠 수 있습니다. 재시작 / 게임 종료를 할 때마다 랭킹이 저장되며(자바 파일 입출력 기능), 랭킹 초기화 버튼을 통해 랭킹을 초기화할 수 있습니다. 랭킹 기능은 없냐는 친구의 말에, 아 맞다 나 파일입출력 배웠지? 그걸로 될 것 같은데? 하면서 만들었던 기억이 생각..

article thumbnail
[Java] 숫자 야구 게임
언어/Java 2022. 2. 15. 00:32

어렸을 적 많이 해봤던 숫자 야구 게임. ​ 입력한 값의 숫자와 정답의 숫자의 같은 자릿수의 숫자가 같다면 Strike ​ 자릿수는 다르나 같은 숫자가 있다면 Ball 이며, ​ 3 Strike 일 경우 게임을 승리한다. - 랜덤 난수 생성 - public Random_answer_generating() // 랜덤 난수(정답) 생성 { answer = new int[3]; for(int i = 0;i