자료구조와 알고리듬 With Java 70

2022-06-29 [5회차] 알고리즘 스터디

1. 색종이 만들기 - 실버 2 출처: 백준 2630번 https://www.acmicpc.net/problem/2630 2630번: 색종이 만들기 첫째 줄에는 전체 종이의 한 변의 길이 N이 주어져 있다. N은 2, 4, 8, 16, 32, 64, 128 중 하나이다. 색종이의 각 가로줄의 정사각형칸들의 색이 윗줄부터 차례로 둘째 줄부터 마지막 줄까지 주어진다. www.acmicpc.net MySol) - while문으로 작성하려 해서 결국 못 풀었다. - 재귀함수, 백트래킹을 이용해서 풀어야한다. Sol) 스터디원 코드 - 종이를 자를지 말지 결정한다. - 재귀함수 인덱스 두 가지를 넘긴다. - 두 번째 방법: cut2() -> gap은 간격의 길이 -> boolean cutFlag: 잘라야 하는지 ..

2022-06-29 [4회차] 알고리즘 스터디

1. substring의 index 찾기 - String haystack에 대해서 String needle이 haystack의 한 부분을 차지하는 경우 그 index를 반환하라. - 부분 문자열이 아닌 경우는 -1을 반환하라 - 포인터를 써서 풀도록 문제를 가져오셨는데 내가 단순하게 substr으로 풀었다. 포인터로 푸는 부분도 복습! 출처: https://leetcode.com/problems/implement-strstr/ Implement strStr() - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your n..

2022-06-22 [3회차] 알고리즘 스터디

1.스도쿠 - DFS, 재귀함수 (골드 4) https://www.acmicpc.net/problem/2580 2580번: 스도쿠 스도쿠는 18세기 스위스 수학자가 만든 '라틴 사각형'이랑 퍼즐에서 유래한 것으로 현재 많은 인기를 누리고 있다. 이 게임은 아래 그림과 같이 가로, 세로 각각 9개씩 총 81개의 작은 칸으로 이루 www.acmicpc.net Sol) 스터디원 코드 - 스터디원 블로그 /** 0 4 0 0 0 0 2 0 0 0 6 0 0 0 5 0 0 0 2 0 5 0 8 0 0 0 7 0 0 6 0 0 0 0 0 0 5 0 7 0 0 1 9 0 0 0 0 0 0 4 0 0 1 0 0 0 0 3 0 0 0 0 8 0 2 0 0 0 0 0 0 0 9 0 1 0 0 4 7 0 0 * 0 0 0 ..

Baek joon 5052 전화 번호

Ex) 전화 번호 목록 - sort와 startsWith를 이용한다. - phone_book[i].startsWith(phone_book[i-1]) : phone_book[i-1]가 phone_book[i]의 접두사인지 확인한다. - Arrays.sort(배열명): 배열을 오름차순으로 정렬한다. Sol) import java.util.*; class Solution { public boolean solution(String[] phone_book) { Arrays.sort(phone_book); // sort로 정렬하면 119와 1195524421이 옆자리에 정렬된다. for(int i = 1; i < phone_book.length; ++i){ //따라서, 바로 옆자리에 있는 수가 접두사인지 확인하면 ..

Baekjoon 9375번 패션왕 신혜빈

Ex) 각 테스트 케이스에 대해 해빈이가 알몸이 아닌 상태로 의상을 입을 수 있는 경우를 출력하시오. 해빈이는 패션에 매우 민감해서 한번 입었던 옷들의 조합을 절대 다시 입지 않는다. 예를 들어 오늘 해빈이가 안경, 코트, 상의, 신발을 입었다면, 다음날은 바지를 추가로 입거나 안경대신 렌즈를 착용하거나 해야한다. 해빈이가 가진 의상들이 주어졌을때 과연 해빈이는 알몸이 아닌 상태로 며칠동안 밖에 돌아다닐 수 있을까? 첫째 줄에 테스트 케이스가 주어진다. 테스트 케이스는 최대 100이다.- - 각 테스트 케이스의 첫째 줄에는 해빈이가 가진 의상의 수 n(0 ≤ n ≤ 30)이 주어진다. - 다음 n개에는 해빈이가 가진 의상의 이름과 의상의 종류가 공백으로 구분되어 주어진다. 같은 종류의 의상은 하나만 입을..

Chapter 02. 선형 자료구조

2.1 자료구조 소개 Def) 자료 구조(Data Structure): 자료를 효율적으로 관리하기 위한 구조 - 목적에 맞게 사용한 자료구조는 실행시간 단축이나 메모리 용량 절감 효과가 있다. - 선형 자료구조 / 비선형 자료구조 Note) 자료구조의 구현 - 추상 자료형(absract Data type, ADT) -> 자료 형태와 자료에 대한 연산을 정의한 것 -> 구체적인 구현 방법은 명시하지 않는다. (추상 클래스, 인터페이스) 2.2 배열 Note) 배열 - 데이터가 메모리 상에 연속적으로 저장된다 . - 데이터와 인덱스가 1:1 대응으로 구성된다. - 단점 -> 데이터 추가/ 삭제가 번거롭다. -> 미리 최대 길이를 정해서 생성한다. -> 가변 길이 배열은 배열의 크기를 변경할 때마다 새로운 배..

[Java 핵심 복습]

1.컴퓨터의 구조 - CPU, 주기억장치(메모리), 보조기억장치(SSD, HDD, USB, ..), 입력장치, 출력장치 2. 파일 확장자와 자바에서 사용하는 파일들 - 파일: 컴퓨터 상에서 의미를 가지고 있는 논리적인 단위 -> 텍스트 파일 -> 바이너리 파일(binary) - 확장자를 알면 어떤 파일인지 알 수 있다. - 자바 소스 파일: HelloWorld.java - 자바 바이트 코드: HelloWorld.class. - 자바 아카이브(java archive, jar): 자바 클래스 파일과 클래스에서 이용하는 리소스 파일 및 메타 데이터를 포함하여 배포 및 실행을 목적으로 하나의 파일로 묶어 놓은 포맷(zip으로 묶여 있음) - 웹 아카이브(web archive, war): 서블릿 클래스 파일, J..

Part 01. 연습문제 풀이 3 [zerobase]

1. 배열의 숫자들 중복 제거해서 나타내기 - 단, 새로운 배열이나 set사용은 금지 - 중복 제거된 원수의 개수를 나타내는 변수 idx를 선언한다. - nums배열에 새롭게 값을 넣을 때는 nums[idx++]을 꼭 후치로 넣어준다. import java.util.*; public class Practice1 { public static void solution(int[] nums) { int idx = 0; // 중복 제거한 데이터 개수 for(int num : nums) { // 인덱스가 첫번째이거나 이전 숫자보다 커지는 경우 if (idx == 0 || num > nums[idx - 1]) { nums[idx++] = num; } } System.out.print("[" + idx + "]"); ..