반응형

전체 글 320

이클립스 오류 svn:E160024 Some of selected resources where not commited.

이클립스로 개발을 진행하면 svn을 사용해서 서로의 작업을 공유한다. 간혹 작업하는 과정에서 파일이 겹쳐서 충돌이 발생하게 되면 아래와 같은 에러로 인해 커밋이 안되는 경우가 있다. ✅ svn: E1600024: Commit failed 위 에러를 해결하기 위해선 'Override and Update...'를 진행해주면 된다. 충돌이 발생한 파일에 한해서 Override and Update를 진행하기 전에 본인이 했던 작업을 백업해두는 게 좋다. Update를 완료했다면 본인이 했던 작업을 덮어씌우고 Commit을 진행해주면 완료.

자바 Scanner vs BufferedReader 차이점

자바에서 문자열을 입력받는 대표적인 방법에는 Scanner와 BufferedReader가 있다. 오늘 두 개의 차이점에 대해서 알아보려고한다. 자바를 한 번이라도 접해봤으면 Scanner는 사용해봤을거라고 생각된다. 알고리즘을 풀어봤다면 BufferdReader 또한 사용해봤을것이다. 기본 문법 [Scanner] import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); String input = sc.nextLine(); System.out.println(input); } } JDK1.5부터 java.util 패키지에 포함된 클래스로 데이터를..

싱글톤 패턴(Singleton pattern) 이해하기 (사용하는 이유와 구현 방법)

싱글톤 패턴은 생성자가 여러 번 호출 되더라도 실제로 생성되는 객체는 하나이며 최초로 생성된 이후에 호출된 생성자는 이미 생성한 객체를 반환시키도록 만드는 디자인 패턴이다. 간단하게 설명하자면 단 하나의 인스턴스만 생성하여 사용하는 디자인 패턴을 의미한다. ✅ 디자인 패턴 프로그램을 설계할 때 발생했던 문제점들을 객체 간의 상호 관계 등을 이용하여 해결할 수 있도록 하나의 규약 형태로 만들어 놓은 것을 의미함. 일종의 설계 기법으로 SW 재사용성, 호환성, 유지 보수성을 위함이다. ✅ 싱글톤을 사용하는 이유 객체는 생성할 때마다 메모리 영역을 할당받아야한다. 싱글톤을 사용하게 되면 한 번의 객체를 생성하기 때문에 메모리 낭비를 방지할 수 있다. 또한, 이미 생성된 인스턴스를 활용하기 때문에 속도 측면에서..

[백준]JAVA - 10431번: 줄세우기

10431번: 줄세우기 (acmicpc.net) 10431번: 줄세우기 초등학교 선생님 강산이는 아이들을 데리고 단체로 어떤 일을 할 때 불편함이 없도록 새로 반에 배정받은 아이들에게 키 순서대로 번호를 부여한다. 번호를 부여할 땐 키가 가장 작은 아이가 1 www.acmicpc.net 풀이 "줄서기가 끝났을 때 학생들이 총 몇 번 뒤로 물러서게 될까?" 줄 서는 조건이 거창하지만 엄청 쉬운 문제였다. 반복문으로 앞에 키 큰 사람이 몇 명인지 세주면 간단하게 해결할 수 있다. import java.io.*; import java.util.*; public class Main { public static void main(String[] args) throws IOException { BufferedRea..

주소창에 구글, 네이버 등을 검색하면 어떤일이 벌어질까?

안녕하세요. N년차 웹 개발자입니다. 저는 웹 개발을 하면서 이 페이지가 어떻게 동작하는지에 대해서 알아야 된다고 생각합니다. 그렇다면 사용자가 주소창에 www.google.com 혹은 www.naver.com 을 입력하면 무슨 일이 발생할까요? 우리가 사는 집 주소가 존재하듯이 웹 브라우저도 주소가 있다. 모든 사람에게 '수원역 1번 출구'로 오세요. 라고 한다면 한 명도 빠짐없이 수원역 1번 출구로 올 것이다. 웹 브라우저도 google.com 혹은 naver.com 처럼 고유 주소가 존재하고 이것을 URL이라고 부른다. 웹 브라우저 동작 방식 1. 사용자가 google.com 을 검색 2. 웹브라우저는 캐싱된 DNS 기록들을 해당 도메인 주소와 대응하는 IP 주소를 확인 DNS는 웹사이트 이름과 I..

자바 카운팅 정렬 Counting Sort 계수 정렬 완벽 이해하기

카운팅 정렬 Counting Sort 카운팅 정렬은 시간 복잡도 O(n) 을 가지고 있기 때문에 많은 정렬 알고리즘 중에서 좋은 성능을 갖고 있다. 빠른 정렬 알고리즘에 속하는 퀵 정렬 (Quick Sort), 힙 정렬 (Heap Sort), 합병 정렬 (Merge Sort) 등의 평균 시간 복잡도가O(nlogn) 인 것을 보면 엄청난 속도를 가지고 있다는 것을 알 수 있다. 이처럼 빠른 속도를 가졌음에도 정렬이 필요한 상황에서는 퀵 정렬을 주로 사용한다. 그 이유에 대해서 알아보자. 정렬 과정 카운팅 정렬은 데이터 값이 몇 번 나왔는지 세주는 것이다. 정렬의 이름처럼 수를 counting 해주는 것. 다음과 같은 배열이 있다고 가정해보자. 1. 배열을 쭉 돌면서 해당 값을 index로 하는 새로운 배열..

[백준]JAVA - 2075번: N번째 큰 수

2075번: N번째 큰 수 (acmicpc.net) 2075번: N번째 큰 수 첫째 줄에 N(1 ≤ N ≤ 1,500)이 주어진다. 다음 N개의 줄에는 각 줄마다 N개의 수가 주어진다. 표에 적힌 수는 -10억보다 크거나 같고, 10억보다 작거나 같은 정수이다. www.acmicpc.net 풀이 N*N 크기의 2차원 배열에서 N번째 큰 수를 찾으면 된다. 우선순위 큐를 사용하면 쉽게 해결할 수 있다. 기본적으로 오름차순으로 정렬되기 때문에 N번째 큰 수를 찾기 위해서는 정렬을 재정의해주어야 한다. 단순 integer형 큐이기 때문에 Collections.reverseOrder() 를 사용해서 역순으로 정렬해 주었다. 이후에 N-1번째까지 pq.poll()을 해주고, pq.poll()을 한 번 더 사용해서..

알고리즘/정렬 2023.03.15

[백준]JAVA - 1244번: 스위치 켜고 끄기

1244번: 스위치 켜고 끄기 (acmicpc.net) 1244번: 스위치 켜고 끄기 첫째 줄에는 스위치 개수가 주어진다. 스위치 개수는 100 이하인 양의 정수이다. 둘째 줄에는 각 스위치의 상태가 주어진다. 켜져 있으면 1, 꺼져있으면 0이라고 표시하고 사이에 빈칸이 하나씩 www.acmicpc.net 풀이 딱히 풀이라고 할 게 없는 문제다. 그냥 문제에서 시키는대로 해주면 된다. 번호가 주어졌을 때 남학생일 경우 번호의 배수에 해당하는 스위치 상태를 변경해주면 된다. 예를 들어 3이 주어졌다면 3, 6, 9, ··· 를 변경해준다. 여학생일 경우 번호의 양 옆 스위치 상태를 확인하고 서로 다를 때까지 비교해준다. 두 개의 스위치 값이 같다면 변경해주고, 다르면 탐색을 중단한다. 예를 들어 3이 주어..

[백준]JAVA - 20926번: 얼음 미로

https://www.acmicpc.net/problem/20926 20926번: 얼음 미로 탐험가 테라는 얼음 미로에 갇혔다. 얼음 미로의 바닥은 빙판으로 되어 있어 발을 내디디면 바위에 부딪힐 때까지 미끄러진다. 예를 들어, 위 그림에서 테라가 왼쪽 방향으로 이동한다면 중간에 www.acmicpc.net 풀이 포켓몬 얼음동굴이 생각나는 다익스트라 문제. 테라, 바위, 구멍, 출구가 char형이라서 int형으로 임의의 값을 줘서 int형 배열로 선언했다. static int Rock = 100, Hole = -1, Escape = 200, W, H; for (int i=0; i= W) break; if (map[nx][ny] == Hole) break; if (map[nx][ny] == Rock) { ..

[백준]JAVA - 1106번: 호텔

https://www.acmicpc.net/problem/1106 1106번: 호텔 첫째 줄에 C와 형택이가 홍보할 수 있는 도시의 개수 N이 주어진다. C는 1,000보다 작거나 같은 자연수이고, N은 20보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에는 각 도시에서 홍보할 때 www.acmicpc.net 풀이 "호텔의 고객을 적어도 C명 늘리기 위해 형택이가 투자해야하는 돈의 최솟값을 구하시오." 문제 요구사항에서 주목해야할 건 "적어도 C명"이다. 만약 목표치가 10명인데 11명, 12명을 모집했을 때가 더 비용이 적게 든다면 그 비용을 출력해야한다. 예제 2번을 보면 쉽게 이해할 수 있다. 3명 모집 -> 1원 6명 모집 -> 2원 9명 모집 -> 3원 10명 모집 -> 6원 11명 모집 ..

반응형