본문 바로가기

Java

(501)
[JAVA] 백준 2667 단지번호붙이기 https://www.acmicpc.net/problem/2667 2667번: 단지번호붙이기 과 같이 정사각형 모양의 지도가 있다. 1은 집이 있는 곳을, 0은 집이 없는 곳을 나타낸다. 철수는 이 지도를 가지고 연결된 집의 모임인 단지를 정의하고, 단지에 번호를 붙이려 한다. 여 www.acmicpc.net - 아래 그림과 같이 정사각형 모양의 지도가 있다. 1은 집이 있는 곳을, 0은 집이 없는 곳을 나타낸다. - 철수는 이 지도를 가지고 연결된 집의 모임인 단지를 정의하고, 단지에 번호를 붙이려 한다. - 여기서 연결되었다는 것은 어떤 집이 좌우, 혹은 아래위로 다른 집이 있는 경우를 말한다. - 대각선상에 집이 있는 경우는 연결된 것이 아니다. - 는 을 단지별로 번호를 붙인 것이다. - 지도를 ..
[자바 알고리즘 인터뷰] 6장 문자열 처리(2) 문자열 뒤집기 https://leetcode.com/problems/reverse-string/description/ - 문자열을 뒤집는 함수를 작성하라, 입력값은 문자 배열이며, 리턴없이 입력 배열 내부를 직접 조작하라 풀이 1) 문자 배열로 스왑 - 서로 중앙으로 나아가다 겹치는 지점에 도달하면 종료하는 형태 - 스왑을 통해 배열 내부의 값을 변경 class Solution { public void reverseString(char[] s) { int start = 0; int end = s.length-1; //서로 중앙으로 이동해 나가다 겹치는 지점에 도달하면 종료 while(start
[자바 알고리즘 인터뷰] 6장 문자열 처리(1) 유효한 팰린드롬 https://leetcode.com/problems/valid-palindrome/description/ - 주어진 문자열이 팰린드롬인지 확인하라. 대소문자를 구분하지 않으며, 영숫자(영문자와 숫자)만을 대상으로 한다. 풀이 1) 문자 단위로 추출해서 처리 - Character 클래스에는 원시 자료형 char를 입력값으로 하여 모두 소문자로 변경해주는 toLowerCase() 메소드와 영숫자인지 판별해주는 isLetterOrDigit() 메소드가 모두 존재한다. ex) Character.toLowerCase('G'); //'g' Character.isLetterOrDigit('G'); //true - 문자열에서 맨앞의 문자와 맨 뒤의 문자를 추출한 다음 유효한 문자(영숫자)인지를 확인하고 모두 소문자로..
[자바 알고리즘 인터뷰] 5장 빅오 1. 빅오 - 빅오 표기법이란 입력 크기가 무한대로 향할 때 함수의 상한을 설명하는 수학적 표기 방법으로, 점근적 실행 시간(Asymptotic Running Time)을 표기할 때, 가장 널리 쓰이는 수학적 표기법 중 하나이다. - 점근적 실행시간이란 입력값 n이 커질 때, 즉 입력값이 무한대를 향할 때 lim->무한대 함수의 실행 시간 추이를 의미한다. - 시간복잡도(Time Complexity)의 사전적 정의는 어떤 알고리즘을 수행하는 데 걸리는 시간을 설명하는 계산 복잡도(Computational Complexity)이며, 이와 같은 계산 복잡도를 표기하는 데 대표적인 방법이 바로 빅오다. - 빅오로 시간 복잡도를 표현할 때는 최고차 항만을 표기하며, 계수는 무시한다. - 시간 복잡도를 표기할 때..
[JAVA] 프로그래머스 - 배열 조각하기 https://school.programmers.co.kr/learn/courses/30/lessons/181893 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 정답 import java.util.Arrays; class Solution { public int[] solution(int[] arr, int[] query) { for(int i=0; i
[JAVA] 프로그래머스 - 2의 영역 https://school.programmers.co.kr/learn/courses/30/lessons/181894 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 정답 import java.util.ArrayList; class Solution { public int[] solution(int[] arr) { ArrayList temp = new ArrayList(); for(int i=0; i
[JAVA] 프로그래머스 - 배열 만들기 3 https://school.programmers.co.kr/learn/courses/30/lessons/181895 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 두 배열을 합치는 방법 [Java]두 배열을 합치는 방법 (tistory.com) [Java]두 배열을 합치는 방법 두 배열을 합치는 방법 이번 포스팅은 Java에서 두 개의 배열을 연결하여 하나의 새로운 배열을 만드는 몇 가지 방법을 소개합니다. 방법 1. 반복문 가장 심플한 방법으로 반복문을 사용할 수 있 developer-talk.tistory.com - 두 배열의 길이를 더한 값을 새로운..
[JAVA] 프로그래머스 - 첫 번째로 나오는 음수 https://school.programmers.co.kr/learn/courses/30/lessons/181896 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 정답 class Solution { public int solution(int[] num_list) { int answer = 0; for(int i=0; i