본문 바로가기

자바

[Java] Linked List 개념 / 구현 Linkedlist란 - 데이터와 다음데이터를 가리키고 있는 포인터로 이루어져 있는 노드가 연결되어 있는 자료구조 형태를 의미한다. - 데이터의 삽입, 삭제가 쉽다 (배열의 경우 삽입, 삭제를 할 때 index를 모두 옮겨야함) - 데이터 탐색에 시간이 걸림 (index가 없기 때문) - 자바에서는 링크리스트를 제공해주고, get(index)의 형태로 index도 제공해준다. - 이중링크드리스트(앞뒤로 포인터가 있음), 원형연결리스트도 있다. - 구현한 링크드리스트 (개념확인용/ 스터디에서 주어진 메소드로 수정예정) public class LinkedList { private Node head; private Node tail; private int size = 0; private class Node{ .. 더보기
자바스터디 4주차 feat.백기선님 (선택문/조건문과 반복문) 선택문 (if문, switch문) 1. if문 : if문, if-else문이 있다. : 조건식이 참이면 if 내부의 문장이 실행. : 조건식이 거짓이면 if문을 벗어난다. if( 조건식 ){ 실행 문장 } * if문 예시 int a = 4; if(a == 4 ){ // a가 4가 맞으면 밑에 있는 문장 실행 System.out.println("a=4 입니다."); } * if else문 예시 int a = 4; if(a == 4 ){ // a가 4가 맞으면 밑에 있는 문장 실행 System.out.println("a=4 입니다."); } else{ //위의 조건식이 실행이 안되었다면 else문 무조건 실행 System.out.println("a=4가 아닙니다."); } 2. switch문 : 하나의 식 .. 더보기
[JAVA] 금액표기할 때 콤마찍기 🤩DecimalFormat 사용! import java.text.DecimalFormat; public class DEC { public static void main(String[] args) { int chk = 1234567; DecimalFormat formatter = new DecimalFormat("###,###"); System.out.println(formatter.format(chk)); //1,234,567로출력됨 } } 더보기
자바의 특징 * 자바의 특징 객체지향 (클래스 계층 구조, 상속성, 다형성, 캡슐화) 멀티스레드 : 하나의 프로그램에서 다수의 스레드가 동시에 실행할 수 있다. 플랫폼 독립성 : 어느 운영체제에 종속되지 않고 JVM만 있으면 실행 가능 소스와 클래스파일 : 하나의 .class 파일은 반드시 하나의 클래스파일. .java 안에 2개의 클래스 => .class 2개 실행 모듈 : 자바의 실행은 main() 메소드에서 시작. 클래스로 캡슐화 패키지 : 파일 시스템의 폴더 개념 * 객체지향의 특징 : 소프트웨어의 재사용을 위함. 이는 생산성이 향상된다. 1. 캡슐화란 : 객체를 캡슐로 싸서 내부를 보호하고 볼 수 없게끔 만든다. : 클래스(class)라는 캡슐을 사용하여 객체(메소드(함수)+ 필드(데이터변수))를 만듬 : .. 더보기
자바스터디 1일차 (feat.백기선님) 목표 자바 소스 파일(.java)을 JVM으로 실행하는 과정 이해하기. 학습할 것 JVM이란 무엇인가 : Java Virtual Machine 의 약자. (자바 가상 기계) : 자바의 특징 중 하나인 WORA(write once run anywhere)을 할 수 있도록 만들어준다. : 타 언어는 운영체제에 종속적(플랫폼 종속적)이라 아무데서나 실행이 불가하지만 java는 JVM만 있으면 어디서든 실행 가능 컴파일 하는 방법 : 컴파일이란 소스 프로그램(우리가 작성하는 프로그래밍 언어) => 기계어(컴퓨터가 읽을 수 있는 언어) 변환하는 과정 * 자바의 경우 (확장자) .java => .class : javac 자바 소스를 바이트 코드로 변환하는 컴파일러 실행하는 방법 : 자바는 컴파일을 해준 뒤에 (.c.. 더보기
11월 개발일지 ,,,,ㅎ,,, 마지막 개발 일지가 8월이네...?! 이게 무슨일이지...😥 우선 그 동안 파견을 나가게 되어 새로운 환경에 적응하고 일하느라 바빴고, 여행도 다니고, 공부도 열심히(나혼자 나름) 하고, 시험도 봤다! 회사 다니면서 공부를 하고 이직 준비를 하는 것은 정말 쉽지 않다는 것을 느꼈다. 또 일이^^ 많아지면서 책상에 다시 앉기가 힘들어졌다.. 왜 일 없을 때 공부 하라는지 알겠음.. 시험도 몇번 보고 자소서도 쓰니까 내가 부족한 부분이 너무 많아 자괴감에 빠져버렸다~ 공부 할건 너무나 많고,,, 난 너무 부족하고,, 좀더 일찍 시작했더라면...ㅎㅎ^^ 핑계는 그만~ 우선 지금 회사에서 ^혼^자^ 홈페이지를 개발하게 되었다. 유지보수만 하던 회사에서 이렇게 개발 할 수 있을 줄은 몰랐다... .. 더보기
7월 개발 일정...! 요즘 너무 공부를 안해서,,ㅎㅎㅎ 7월 부터 다시 집중해서 해보자! 이제부터 일지도 써봐야겠다!! 1. 알고리즘 공부 => 깃허브 올리기(일주일에 3문제 이상 풀기) - 케빈 강의에 나왔던 문제 다 정복....하기^^ 2. 스프링 공부 - 회사에서 신청한 강의 수강(실전 개발자를 위한 Spring Framework) - 스프링 부트와 AWS로 혼자 구현하는 웹 서비스(한달 전 구매해놓은 책....ㅎ...) 3. 자바 기본 개념 다시보기 더보기
[백준 11729][자바] 하노이 탑 순서 알고리즘을 배울때 가장 먼저 책에 등장하는 하노이 탑... 문제 세 개의 장대가 있고 첫 번째 장대에는 반경이 서로 다른 n개의 원판이 쌓여 있다. 각 원판은 반경이 큰 순서대로 쌓여있다. 이제 수도승들이 다음 규칙에 따라 첫 번째 장대에서 세 번째 장대로 옮기려 한다. 한 번에 한 개의 원판만을 다른 탑으로 옮길 수 있다. 쌓아 놓은 원판은 항상 위의 것이 아래의 것보다 작아야 한다. 이 작업을 수행하는데 필요한 이동 순서를 출력하는 프로그램을 작성하라. 단, 이동 횟수는 최소가 되어야 한다. 아래 그림은 원판이 5개인 경우의 예시이다. 입력 첫째 줄에 첫 번째 장대에 쌓인 원판의 개수 N (1 ≤ N ≤ 20)이 주어진다. 출력 첫째 줄에 옮긴 횟수 K를 출력한다. 두 번째 줄부터 수행 과정을 출력한.. 더보기