[알고리즘] 1장) 알고리즘이란?

msriver·2020년 5월 27일
0

알고리즘/자료구조

목록 보기
3/20
post-custom-banner

⚛ Do it! 공부!

이지스퍼블리싱에서 만든 Do it! 자료구조와 함께 배우는 알고리즘 입문 이라는 책을 구매한지 일주일이 지난 지금, 이제서야 1장을 보았다.(ㅎㅎ게으른쉑)

첫장인만큼 특별히 어려운 내용들은 없는 것 같다.

  • 알고리즘의 정의?
  • 구조적프로그래밍의 구성요소 : 순차적 구조, 선택문, 반복문

이 외에 기본적인 자바 입출력 , if, while, for 문법등이 나와있다.

알고리즘 : 문제를 해결하기 위한 것으로, 명확하게 정의되고 순서가 있는 유한 개의 규칙으로 이루어진 집합. 아무리 명확하게 정의된 알고리즘이라도 변수에 따라 결과가 맞기도 하고 틀리기도 한다면 올바른 알고리즘이라 할 수 없다.

연습문제들도 그냥 타이핑 연습수준이지만 맨 마지막 다중반복문 연습문제는 그래도 풀어보았다. 문제는 주석으로 대충 설명.

연습문제 Q15

import java.util.*;

/*
 * 직각이등변삼각형을 출력하는 메서드를 4개 작성한다.
 * 왼쪽 아래, 왼쪽 위, 오른쪽 아래, 오른쪽 위가 직각
 * 정수 n을 매개변수로 받아 직각을 이루는 두 변의 길이가 n
 */

public class Triangle {
	
	//왼쪽 아래가 직각 
	static void triangleLB(int n) {
		for(int i=1;i<=n;i++) {
			for(int j=1;j<=i;j++) {
				System.out.print("*");
			}
			System.out.println();
		}
	}
	
	//왼쪽 위가 직각
	static void triangleLU(int n) {
		for(int i=n;i>=1;i--) {
			for(int j=0;j<i;j++) {
				System.out.print("*");
			}
			System.out.println();
		}
	}
	
	//오른쪽 아래가 직각
	static void triangleRB(int n) {
		for(int i=1;i<=n;i++) {
			for(int j=1;j<=n-i;j++) {
				System.out.print(" ");
			}
			for(int j=1;j<=i;j++) {
				System.out.print("*");
			}
			System.out.println();
		}
	}
	
	//오른쪽 위가 직각
	static void triangleRU(int n) {
		for(int i=1;i<=n;i++) {
			for(int j=1;j<=i-1;j++) {
				System.out.print(" ");
			}
			for(int j=1;j<=n-i+1;j++) {
				System.out.print("*");
			}
			System.out.println();
		}
	}
	
	public static void main(String[] args) {
		triangleLB(5);
		//triangleLU(10);
		//triangleRB(5);
		//triangleRU(5);
	}
}

연습문제 Q16

import java.util.*;

/*
 * 정수 n을 입력받아 n단의 피라미드를 출력하는 메서드 작성
 */

public class Pyramid {
	
	static void pyra(int n) {
		for(int i=1;i<=n;i++) {
			for(int j=1;j<=n-i;j++) {
				System.out.print(" ");
			}
			for(int j=1;j<=2*i-1;j++) {
				System.out.print("*");
			}
			System.out.println();
		}
	}
	
	public static void main(String[] args) {
		pyra(5);
	}
}

연습문제 Q17

import java.util.*;

/*
 * 연습문제 Q16과 비슷한데 숫자로 피라미드를 만드는것.
 * i행에 출력하는 숫자는 i%10 으로 구한다.
 */

public class NumPyramid {
	static void npyra(int n) {
		for(int i=1;i<=n;i++) {
			for(int j=1;j<=n-i;j++) {
				System.out.print(" ");
			}
			for(int j=1;j<=2*i-1;j++) {
				System.out.print(i%10);
			}
			System.out.println();
		}
	}
	
	public static void main(String[] args) {
		npyra(5);
	}
}
profile
NOBODY
post-custom-banner

0개의 댓글