[Java] 백준 9663번 문제 (N-Queen)
자료구조 & 알고리즘/BOJ2023. 8. 29. 06:25[Java] 백준 9663번 문제 (N-Queen)

문제설명 소스코드 import java.util.Scanner; class Main { static boolean[] flag_a = null; static boolean[] flag_b = null; static boolean[] flag_c = null; static int[] pos = null; static void func(int N) { flag_a = new boolean[N]; flag_b = new boolean[2 * N + 1]; flag_c = new boolean[2 * N + 1]; pos = new int[N]; } static int count = 0; static void set(int i, int N) { for (int j = 0; j < N; j++) { if (fla..

[Java] 8퀸 문제(분기한정법)
자료구조 & 알고리즘/알고리즘2023. 8. 29. 00:25[Java] 8퀸 문제(분기한정법)

Do it! 자료구조와 함께 배우는 알고리즘 입문[자바편] 연습문제와 실습문제입니다. 8퀸 문제란? 서로 공격하여 잡을 수 없도록 8개의 퀸을 8x8 체스판에 놓는 것 퀸은 현재 놓여있는 지점에서 가로 or 세로 or 대각선의 8가지 방향으로 직선 이동 가능하다. 체스판의 가로줄을 행, 세로줄을 열이라 하고 배열 인덱스에 맞추어 행과 열에 0~7의 번호를 부여한다. 이 문제의 답이 되는 조합은 92가지이다. 아래의 그림은 92가지중 하나의 조합을 나타낸 것이다. 퀸 배치하기 8개의 퀸을 체스판 64칸(8*8)이므로 처음에 64칸중 아무칸에 놓고, 다음 퀸을 배치할 때는 나머지 63칸에서 임의로 선택한다. 64 x 63 x 62 x 61 x 60 x 59 x 58 x 57 = 178,462,987,637,..

[Java] 재귀 알고리즘 메모화
자료구조 & 알고리즘/알고리즘2023. 8. 28. 00:03[Java] 재귀 알고리즘 메모화

Do it! 자료구조와 함께 배우는 알고리즘 입문[자바편] 연습문제와 실습문제입니다. public class Main { static void recur(int n) { if(n > 0) { recur(n - 1); System.out.println(n); recur(n-2); } } public static void main(String[] args) throws Exception { recur(4); } } /* 1 2 3 1 4 1 2 */ 위 recur 메소드는 실행 과정에서 같은 계산을 여러번 반복하여 수행한다. 위 에서 보는 것과 같이 recur(4)를 호출하면 recur(1)을 3회 실행한다. n 값이 커지면 반복하는 계산 횟수는 더욱 늘어난다. recur(3)은 1, 2, 3, 1을 차례로..

[알고리즘] 빅 오 (Big O) 표기법
자료구조 & 알고리즘/알고리즘2023. 8. 27. 00:58[알고리즘] 빅 오 (Big O) 표기법

이 글은 누구나 자료 구조와 알고리즘(저자 : 제이 웬그로우)의 내용을 개인적으로 정리하는 글임을 알립니다. 빅 오 단순히 어떤 알고리즘을 22단계 알고리즘, 400단계 알고리즘이라고 표시할 수 없다. 알고리즘에 필요한 단계 수를 하나의 수로 못 박을 수 없기 때문이다. 예를 들어 선형 검색에는 배열의 원소 수만큼의 단계가 필요하므로 배열에 따라 필요한 단계 수가 다르다. 선형 검색의 효율성을 정량화하는 보다 효과적인 방법은 배열에 N개의 원소가 있을 때 선형 검색에 N단계가 필요하다고 표현한다. 빅 오 표기법을 사용해 주어진 알고리즘의 효율성을 쉽게 분류하고 이해시킬 수 있다. 선형 검색 알고리즘을 빅 오로 나타내면 O(N)이다. O(N)은 알고리즘에 N단계가 필요하다는 뜻이다. 원소가 N개인 배열의 ..

[Python] 변수와 입력
Language/Python2023. 8. 26. 00:49[Python] 변수와 입력

변수 변수의 개념 변수 : 값을 저장할 때 사용하는 식별자 파이썬에서는 숫자형/문자형을 비롯한 모든 데이터 타입에 대해 그것을 지칭할 수 있는 이름을 자유롭게 만들 수 있고 (키워드는 변수이름으로 사용 못함), 컴퓨터 하드웨어 중 메모리에 변수에 대한 공간을 만들고, 값을 할당함 컴퓨터의 메모리 공간에 이름을 붙이는 것으로 우리는 여기에 값을 저장할 수 있다. C언어에서는 직접 메모리 상의 공간에 접근할 수 있는‘포인터’를 제공하고 있으나, 파이썬에서는 포인터가 없고, 단지 객체의 참조값만 확인할 수 있음 불변 객체와 가변 객체 불변 객체 불변 객체(immutable object)은 한번 만들어지면 변경할 수 없는 객체 우리가 변수에 저장된 값을 변경하면 값을 저장하는 새로운 객체가 생성되어서 새로운 객..

[Python] 문자형
Language/Python2023. 8. 25. 00:14[Python] 문자형

문자열 문자와 단어 등으로 구성된 문자들의 집합을 의미 Python의 문자열은 유니 코드 문자를 나타내는 바이트 배열 단일 문자는 길이가 1 인 문자열 숫자도 따옴표 안에 있으면 문자열 파이썬의 문자열 리터럴은 작은 따옴표 또는 큰 따옴표로 묶음 -> 작은 따옴표 또는 큰 따옴표 세 개를 연달아 입력하는 방법도 가능 간단한 문자열 만들어 보기 • “Hello” • ‘안녕하세요’ • '''문자열을 공부하고 있습니다.''' • """문자열을 공부하고 있습니다.""" 문자열 내부에 따옴표를 넣으려면? 큰따옴표(작은따옴표) 안에 작은따옴표(큰따옴표)로 문자를 표기해야 함 ""안에 ""을 넣는다면, 단순 문자열이 두 번 반복되는 걸로 파이썬 인터프리터는 이해함 예 : ""안녕"하세요" → “”, “하세요” 가 독..

[Python] 파이썬 자료형
Language/Python2023. 8. 24. 00:25[Python] 파이썬 자료형

자료형 파이썬에서의 자료형 프로그래밍을 할 때 쓰이는 숫자, 문자열 등 자료 형태로 사용하는 모든 것을 뜻함 프로그램의 기본이자 핵심 단위임 C언어나 Java 같은 프로그래밍 언어와 달리, 파이썬에서는 코드를 작성할 때 프로그래머가 자료형을 지정하지 않아도 됨 프로그래밍 시 자료형을 지정하지 않아도 되긴 하지만, 파이썬 내부에서는 자동으로 자료형을 정해줌 • 런타임(실행 시간) 시에 자료형이 결정됨 • 자동으로 지정된 자료형은 어떻게 확인할 수 있나? -> type( )이라는 함수를 통해서 확인할 수 있음 • 실행시켜 보기 전에는 오류를 검출하기 어렵지만, 유연하고 빠르게 코딩이 가능 숫자형(수치 자료형) 숫자형(number)이란 숫자 형태로 이루어진 자료형으로, 123 같은 정수, 12.3 같은 실수,..

[Python] 파이썬 기본적인 용어
Language/Python2023. 8. 23. 00:02[Python] 파이썬 기본적인 용어

키워드(keyword) 파이썬이라는 프로그래밍 언어가 만들어질 때, 이런 단어들은 파이썬 자체적으로 사용하겠다고 예약해 놓은 단어들 (총 35개) 키워드로 지정된 단어들은 변수명 같이 나중에 사용자가 마음대로 정할 수 있는 이름들로는 사용될 수 없기 때문에 알고 있어야 함 식별자(identifier) 키워드 외에 프로그램에서 사용자가 필요에 따라 이름을 만들어 사용하는 단어 즉, 변수, 상수, 함수, 클래스 등의 구분을 위해 사용하는 이름 식별자를 작성하는데 정답은 없지만 대부분의 경우 많은 프로그래머들이 관례적으로 사용하는 카멜 기법과 파스칼 표기법을 적절하게 조합 • 변수명이나 함수명은 카멜 표기법 • 클래스명은 파스칼 표기법 식별자 작성 규칙 식별자로 쓸 수 있는 문자 • 영문 대/소문자(A~Z, ..

image