Star Draw(별 그리기2)
2018-10-31 00:00:00 +0000문제
https://www.acmicpc.net/problem/2439
결과
*
**
***
****
*****
문제풀이
pos = count. // pos는 별* 그릴 위치 시작점을 의미한다
if(j >= pos) print(“*”) // j가 pos 위치보다 크거나 같으면 *을 그린다
else print(“ “)
다음행으로 이동하면 별 위치가 한칸 앞으로 당겨지므로 –pos 를 한다
소스
mport java.util.Scanner;
public class Main {
public static void main(String[] args) {
// *
// **
// ***
// ****
// *****
Scanner sc = new Scanner(System.in);
int count = sc.nextInt();
int pos = count;
for(int i = 0; i < count; ++i)
{
for(int j = 1; j <=count; ++j)
{
if(j >= pos)
{
System.out.print("*");
}
else
{
System.out.print(" ");
}
}
System.out.print("\n");
--pos;
}
}
}
Star Draw(별 그리기1)
2018-10-31 00:00:00 +0000문제
https://www.acmicpc.net/problem/2438
문제풀이
starCount는 행(row) 겸 *갯수를 의미한다
다음 행으로 갈때마다 *개수가 1씩 늘어나므로 row와 같다
소스
package algo;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int count = sc.nextInt();
for(int starCount = 1; starCount <= count; ++starCount)
{
for(int col = 1; col <= starCount;++col)
{
System.out.print("*");
}
System.out.print("\n");
}
}
}
Loop(While, For)
2018-10-30 00:00:00 +0000반복문
while
- (세로)초기식 -> 조건식 -> 명령문 -> 증감식 : 수직방향으로 처리
do while
- 명령을 먼저 실행 후 나중에 조건 체크. 적어도 한번은 실행. 어떤명령을 실행했는데 될 때까지 계속 실행하도록 하고 싶을 때 사용
while
- (세로) 초기식 -> 조건식 -> 명령문 -> 증감식 : 수평방향으로 처리
break outerloop
-
- 중첩 for문에서 사용. 내부 for문에서 중첩 for문 밖으로 나가게 해주는 키워드
- 중첩 for문 위에 outerloop 라벨을 붙여준다
- 중첩 for문을 탈출하고 싶은 위치에 break outerloop를 사용한다
- while문 중첩 시에도 탈출한다
- outerloop 라벨 추가 다음에 바로 반복문이 있어야 한다.(안그러면 에러남)
outerloop:
for(int i = 0; i < 3; ++i)
{
for(int j = 0; j < 3; ++j)
{
if(j == 1)
break outerloop;
System.out.println("print!!");
}
System.out.println(i+"바퀴");
}
결과
print!!
continue outerloop
- 중첩 for문에서 사용.
- 내부for문에서 continue 사용 시 내부 증감연산으로 간다
- 내부for문에서 continue outerloop 사용 시 외부 증감 연산으로 간다
outerloop:
for(int i = 0; i < 3; ++i)
{
for(int j = 0; j < 3; ++j)
{
if(j == 1)
continue outerloop;
System.out.println("print!!");
}
System.out.println(i+"바퀴");
}
결과 print!! print!! print!!
자바 데이터 타입, 데이터 연산
2018-10-30 00:00:00 +0000Java의 플랫폼 독립성
- ‘플랫폼 독립성’은 특정 플랫폼에 의존적이지 않다는 것을 의미
- Java는 컴파일하면 .class 파일을 생성하고 JVM 위에서 실행된다. 그래서 운영체제가 달라도 실행가능하다
- 하지만 C++은 컴파일하면 어셈블리어->기계어->실행파일이 나오는데 해당 플랫폼의 어셈블리어에 맞게 변환되어 다른 플랫폼에선 실행이 안된다
- 예를 들어 windows 실행파일은 linux에서 사용안되고 그 반대도 마찬가지 이다
- Java의 단점은 JVM 위에 있어서 느리다. 그래서 플랫폼과 상관없는 웹에서 사용된다
데이터 기본 리터럴
- 10 => int
- 3.14 => double
- ’ ‘ => char
- ” “ => String ( 기본적인 자료형이 아니다. char로 문자열 사용하기 불편해서 사용 )
- float value = 3.14; 하면 에러가 나서 3.14f처럼 형변환을 해야한다.
- 그런데 short, long 변수에 정수값을 줄 땐 형변환 에러 안나는데 왜 float만 난다.
- 아마 소수점끼리 형변환하면 소실되는 값이 있으니까 에러 내는 듯 하다.
- double에 정수 대입은 에러 안남
double d = 3.14+1;
System.out.println(d);
if(a == 4.14)
{
System.out.println("같다");
}
else
{
System.out.println("다르다");
}
- 결과는 다르다 출력.
- d를 출력하면 4.140000000000001 이 나온다
데이터타입에 따른 출력 결과
데이터타입에 따라 결과가 달라질 수 있다
char c = 'A'
System.out.println(c); 결과 A
System.out.println((int)c); 결과 65
소수점 둘째자리까지 실수를 표현하고 싶다면?
System.out.printf("평균:%.2f", avg);
casting(형변환)
- byte < short < int < long < float < double < String
- 큰자료형 = 큰 자료형+작은 자료형(묵시적 형변환)
- 큰자료형과 작은자료형을 더하면 큰 자료형이 된다.
- 아래처럼 연산결과를 작은자료형으로 받으면 에러난다.
int n1 = 10;
double n2 = 3.14;
int re = n1+n2;
short b1 = 10000;
byte a = 1 + b1;
casting String <=> 정수형, 실수형
- 모든 정수는 String과 연산하면 String이 된다
String n3 = 10 + 5 + "0";
System.out.println(n3);
결과 150
final 변수
- 변수에 값을 딱 한번만 대입할 수 있다(값변경x)
증감 연산자 우선순위
int n7 = 10;
int n8 = 2;
int n9 = n7-- - n8; // 10 - 2 한다음 n7은 1뺀다
System.out.println(n9);
- 연산자 우선순위대로 연산한다.
- –가 모든 연산이 끝난 후 실행하는 후위연산자이기 때문에 10 - 2 를 해서 n9는 8이 되고 n7은 9가 된다
String 비교
- String 값이 같은지 비교할 땐 == 연산자가 아닌 String.equals 함수 사용
- == 연산자는 주소값이 같은지 비교
String str1 = "abc";
String str2 = "abc";
- str1 == str2는 true이다. 처음 abc 글자를 str1에 대입하면 “abc” 단어가 없으므로 등록된다.
- str2값에 “abc”를 넣으면 메모리에 “abc” 글자가 있는지 찾아보고 있으므로 같은 메모리 주소를 전달한다.
시계방향 달팽이 그리기
2018-10-30 00:00:00 +0000문제
시계방향으로 달팽이를 그려라
결과값
1 2 3 4 5
16 17 18 19 6
15 24 25 20 7
14 23 22 21 8
13 12 11 10 9
참고
http://gompangs.tistory.com/24
- 방향을 바꿀 때 마다 x, y열의 그리기는 한칸 씩 줄어든다.
- 방향을 바꾸는 변수 필요
문제풀이
package algo;
public class banggle {
public static void main(String[] args)
{
int count = 5; // 한줄에 몇번 돌 것인가
int max_size = count;
int value = 0;
int arr[][] = new int[count][count];
int x = -1; // 좌표 0,0 ~ 0,4 까지 그리고 나서 다음 y줄을 그리려고 하면 0,5 좌표라서 // 되어서 array size 초과 에러가 되므로
// 배열초과 에러난다. x시작값이 -1인게 중요하다.
int y = 0;
int pos = 1;
for(int i = 0; i < max_size; ++i)
{
for(int xx = 0; xx < count; ++xx)
{
x+=pos; // pos는 방향을 정하는 변수다
++value;
arr[y][x] = value;
}
--count; // 한줄에 그리는 횟수를 줄인다.
for(int yy = 0; yy < count; ++yy)
{
y+=pos;
++value;
arr[y][x] = value;
}
// 방향 바꾸기
pos = (pos == 1) ? -1 : 1;
}
// 2차원 배열 출력
for(int i = 0; i < max_size; ++i)
{
for(int j = 0; j < max_size; ++j)
{
System.out.printf("%5d", arr[i][j]);
}
System.out.print("\n");
}
}
}
Posts
Interceptor(인터셉터)
Android Studio Install
계층형 게시판
VirtualBox Ubuntu 18.04.2 LTS
TransactionAwareDataSourceProxy Error
Java Coding Conventions
Java Long과 long의 차이
Mybatis 객체 안에 객체 매핑
JavaConfig mariadb 연결
DataTable
관리자 페이지
MappingJackson2JsonView
Spring Javaconfig
게시판 만들기-제품 등록
게시판 만들기-제품 페이지 제작
게시판 만들기-회원탈퇴 및 게시판 삭제 플래그 추가
footer 하단에 고정시키기
bootstrap4 사용법
Spring 데이터 검증 @Valid, BindingResult
brackets 실시간 미리보기
Spring 기본설정(pom.xml, web.xml, encoding)
Vue.js computed, methods, watch
javascript onkeyup
Maria DB Incorrect string value Error
javascript 암호화(md5, base64)
Vue.js template
Vue.js 소개
Nexacro 설명
ControllerAdvice
Batch
html 페이지 로딩 순서
소수구하기(PrimeNumber)
최소공배수,최대공약수
Stream
Lambda(람다식)
inner class(내부 클래스)
final 키워드
file upload
파이썬 빅 데이터 K-평균(K-means)
아나콘다(Anaconda), 주피터 개발환경 세팅
텐서플로우(TensorFlow) 아키텍쳐 및 Session
텐서플로우(TensorFlow)상수, 변수, 함수
머신러닝 기초
한글 리스트 오름차순, 내림차순
연속된 글자의 갯수 출력
java spring5 프로젝트 설정
restController
spring 세팅 및 기본설정
mybatis trim
jquery datepicker
ajax로 데이터 전달/응답 받는법
mybatis error
mybatis 게시판 만들기 순서
Java Jsp Mybatis Dynamic Query
mybatis
git 소개
node.js 개발환경 구축
node.js 기본 내장 모듈
node.js의 전역 객체
node.js http module
node.js event
jdbc
자바빈
jsp, servlet 정리
java null object pattern
다음지도 key 등록(kakao map)
공공 데이터 open api
facebook login api
sourcetree 사용법
JavaScript event3
JavaScript jquery
JavaScript dom
JavaScript ajax
JavaScript 이벤트2
JavaScript 캡슐화
JavaScript Array,내장객체
JavaScript var
JavaScript 객체,생성자
JavaScript 함수,클로저
JavaScript Event
javascript eclipse 자동완성(with tern)
CSS position
HTML5,CSS 선택자
자바 시간 측정
git,eclipse 연동
HTML 기초 정리
Eclipse Web 환경세팅
피보나치의 수
Oracle 반복문,커서,예외,저장 서브프로그램
Oracle PL/SQL
Oracle 다중쿼리(Multiple row query)
Oracle 인덱스, 뷰, 시퀀스, 트랜잭션, 세션 정리
Oracle JOIN 정리
Oracle DDL, DML 정리
Oracle 문자열 함수 정리
Oracle 숫자,날짜,자료형 변환 함수 정리
Oracle 제약조건 정리
Oracle 기초 쿼리 정리
문제2775
DFS
junit
json
algorithmus basic
circular queue(원형큐)
binary search(이진탐색)
port forwarding(포트포워딩)
kakao chatbot(카카오 챗봇)
java io
sort comparable, comparator
Unresolved compilation problem
ArrayList, HashMap
Regular(정규표현식)
Enum Class
String Function
refactoring 이란(상수,제어플래그,assert)
reference,abstract 정리
FileNotFoundException Solve
static
Thread Synchronization(스레드동기화,원자성)
Java Exception(예외처리)
Java 생성자, this, super
roomnum
BeeHouse
Git Reset, Revert
Git Log
Array
stack
pyramid draw
Star Draw(별 그리기4)
Star Draw(별 그리기3)
Star Draw(별 그리기2)
Star Draw(별 그리기1)
Loop(While, For)
자바 데이터 타입, 데이터 연산
시계방향 달팽이 그리기
정수값의 짝수,홀수 갯수 구하기
java, Scanner 정리
draw dog
subscribe via RSS