본문 바로가기
728x90

전체 글40

[백준 10101번] 삼각형 외우기 (브론즈 IV) - Java/자바 문제 링크 알고리즘 분류: 구현, 기하학 정답비율 56% (2023.06.23 기준) 문제 창영이는 삼각형의 종류를 잘 구분하지 못한다. 따라서 프로그램을 이용해 이를 외우려고 한다. 삼각형의 세 각을 입력받은 다음, 세 각의 크기가 모두 60이면, Equilateral 세 각의 합이 180이고, 두 각이 같은 경우에는 Isosceles 세 각의 합이 180이고, 같은 각이 없는 경우에는 Scalene 세 각의 합이 180이 아닌 경우에는 Error 를 출력하는 프로그램을 작성하시오. 입력 총 3개의 줄에 걸쳐 삼각형의 각의 크기가 주어진다. 모든 정수는 0보다 크고, 180보다 작다. 출력 문제의 설명에 따라 Equilateral, Isosceles, Scalene, Error 중 하나를 출력한다. 예.. 2023. 6. 23.
[Linux/리눅스] 파일 관련 기본 명령어 정리 및 예시 (cd, pwd, ls, mkdir, touch, mv, cp, rm, cat) cd change directory 지정한 경로로 작업 경로를 이동한다. 예) cd /usr/home/tomcat 결과: /usr/tomcat/bin 경로로 이동한다. pwd print working directory 현재 경로를 출력한다. 예) 현재 경로가 /usr/tomcat/bin인 경우 [mugwart@localhost /usr/tomcat/bin] pwd /usr/tomcat/bin 결과: /usr/tomcat/bin을 출력한다. ls list 현재 경로의 파일명 목록을 출력한다. ls 명령어만 단독으로 사용하면 파일명만 공백 구분으로 쭈우욱 출력되기 때문에 옵션과 함께 쓴다. 옵션에 대해서는 추후 정리 예정. 예) [mugwart@localhost /usr/tomcat/bin] ls tomca.. 2023. 6. 19.
[정렬 알고리즘] 버블 정렬 (Bubble Sort) 설명/예제코드 버블 정렬은 거품 정렬이라고도 부른다. 인접한 두 수를 비교해서 큰 수를 뒤에, 작은 수를 앞에 오게 하는 방식으로 정렬한다. 오름차순 버블 정렬을 하기 위해서는 배열의 첫번째 원소부터, arr[0]과 arr[1]을 비교해서, 1) arr[0] arr[1]이라면 두 수의 순서를 바꾼다. 같은 방식으로 arr[1]과 arr[2], arr[2]와 arr[3], ... arr[n-1]과 arr[n]까지 수행한다. 이 방식을 두 수의 순서가 바뀌는 경우가 없을 때까지 반복하면, 배열의 오름차순 정렬이 완료된다. 내림차순 정렬의 경우, 동일 방식으로 진행하되 1) arr[0] >= arr[1]이라면 그대로 두고, 2) arr[0] < arr[1]이라면 순서를 바꾸면 된다. 위의 이미지를 예로 들면, 초기 배열은 .. 2023. 6. 17.
[기술면접] 자바(Java) 관련 기술면접 질문/답 정리 목록 (추가 예정) Java의 특징 JVM이란? GC란? Java의 primitive type 설명 접근 제한자 오버라이딩 vs 오버로딩 Java의 특징 객체지향 언어. 객체 지향의 특징인 캡슐화, 상속, 다형성이 잘 드러나는 언어 장점 JVM(Java Virtual Machine) 상에서 동작하므로 운영체제에 독립적 GC(Garbage Collector)를 통한 메모리 자동 관리가 가능 단점 JVM 상에서 동작하므로 상대적으로 실행 속도가 느림 다중 상속, 타입에 엄격하고 제약이 많음 JVM이란? Java Virtual Machine, 자바 가상 머신 스택 기반으로 동작하며, 바이트코드를 운영체제에 맞게 해석해 줌 GC를 통해 자동으로 메모리 관리를 해줌 GC란? Garbage Collection, 가.. 2023. 6. 15.
[백준 2941번] 크로아티아 알파벳 (실버 V) - Java/자바 문제 링크 알고리즘 분류: 구현, 문자 정답비율 44% (2023.06.13 기준) 문제 예전에는 운영체제에서 크로아티아 알파벳을 입력할 수가 없었다. 따라서, 다음과 같이 크로아티아 알파벳을 변경해서 입력했다. 크로아티아 알파벳 변경 č c= ć c- dž dz= đ d- lj lj nj nj š s= ž z= 예를 들어, ljes=njak은 크로아티아 알파벳 6개(lj, e, š, nj, a, k)로 이루어져 있다. 단어가 주어졌을 때, 몇 개의 크로아티아 알파벳으로 이루어져 있는지 출력한다. dž는 무조건 하나의 알파벳으로 쓰이고, d와 ž가 분리된 것으로 보지 않는다. lj와 nj도 마찬가지이다. 위 목록에 없는 알파벳은 한 글자씩 센다. 입력 첫째 줄에 최대 100글자의 단어가 주어진다. 알파벳.. 2023. 6. 13.
[DB/데이터베이스] 정규화(Normalization)란? 정규화의 종류와 예시 (1NF, 2NF, 3NF, BCNF, 4NF, 5NF) 관계형 데이터베이스(RDB)에서 정규화란 데이터의 중복을 최소화하여 구조화하는 과정을 말한다. 이는 일반적으로 크고 제대로 조직되지 않은 테이블 하나를 > 작고 제대로 조직된 테이블 여러 개로 나누는 것을 말한다. 정규화의 목표는 이상(anomaly)이 있는 테이블의 관계를 재구성해서 이상 현상을 제거하고, 중복된 종속성을 여러 테이블로 분할하여 효과적인 검색 알고리즘을 생성하는 등에 있다. 즉, 쉽게 설명하자면, 데이터의 일관성과 유연성은 높이고, 중복은 제거하여 논리적인 테이블 구조를 짜는 것이 정규화다. 정규화를 하게 되면 DB의 테이블 수는 많아지고, 각 테이블에 저장되는 데이터의 양은 적어진다. 이렇게 정규화가 된 데이터 모델에는 일관성, 안정성, 정확성, 단순성, 비중복성이 보장된다. 정보처리.. 2023. 6. 11.