Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 파이썬try
- 파이썬가상환경
- 파이썬딕셔너리
- java 컬렉션 프레임워크
- 파이썬강제예외
- 파이선
- 웹크롤링
- 장고 sqlite
- 알고리즘공부
- 파이썬람다함수
- 파이썬
- Django sqlite3
- 이터레이터 제네레이터
- 파이썬웹크롤링
- hashpmap
- 파이썬 github
- git.exe
- 이것이코딩테스트다
- java 예외
- 컬렉션프레임워크
- Java
- 북리뷰
- 파이참github연결
- 파이썬 sqliite
- 파이썬크롤링설치
- 파이썬크롤링
- 파이참가상환경
- 포토샵기초
- BeautifulSoup
- 파이썬예외
Archives
- Today
- Total
박미미의 지식에서 쌓는 즐거움
[알고리즘공부/이것이 코딩테스트다] 구현 본문
구현: 머리속에 있는 알고리즘을 소스코드로 바꾸는 과정
구현하기 어려운 문제란?
- 알고리즘은 간단하지만 코드가 지나칠만큼 길어지는 문제
- 특정 소수점 자리까지 출력해야하는 문제
- 문자열이 입력으로 주어졌을 때 한 문자 단위로 끊어서 리스트에 넣어야 하는 문제
1. 완전탐색 유형
- 모든 경우의 수를 주저없이 다 계산하는 해결 방법
[예시 4-2] 시각 (난이도 하, 풀이시간 15분)
정수 N을 입력받아 00시 00분 00초부터 N시 59분 59초까지의 모든 시각 중에서 3이 하나라도 포함되는 모든 경우의 수를 구하는 프로그램
package CodingTest;
import java.util.Scanner;
public class implementation_113 {
public static void main(String args[]) {
Scanner sc = new Scanner(System.in);
int hour = sc.nextInt(); //시간입력
int count = 0;
for(int h=0; h<hour+1; h++) {
for(int m=0; m<60; m++) {
for(int s=0; s<60; s++) {
if( (Integer.toString(h) + Integer.toString(m)+ Integer.toString(s)).contains("3") ) {
count++;
}
}
}
}
System.out.print(count);
}
}
|
cs |
2. 시뮬레이션 유형
- 문제에서 제시한 알고리즘을 한 단계씩 차례대로 직접 수행
[예시 4-1] 상하좌우 (난이도 하, 제한시간15분)
NxN 좌표에서 상하좌우(U/D/L/R)로 이동할 때 최종 좌표를 구하는 문제
package CodingTest;
import java.util.Scanner;
public class implementation_110 {
public static void main(String args[]) {
Scanner sc = new Scanner(System.in);
int N = sc.nextInt() ; //공간의크기
sc.nextLine();
//이동계획입력
String move = sc.nextLine();
String[] plan = move.split("");
//좌표 초기화
int x=1;
int y=1;
for(int i=0; i<plan.length; i++) {
if("L".equals(plan[i])) {
y -= 1;
if(y==0) y+=1;
}else if("R".equals(plan[i])){
y += 1;
if(y==N+1) y-=1;
}else if("U".equals(plan[i])){
x -= 1;
if(x==0) x+=1;
}else if("D".equals(plan[i])){
x += 1;
if(x==N+1) x-=1;
}
}
System.out.printf("%d,%d", x,y);
}
}
|
cs |
난이도 '하'에 15분 안에 풀어야하는데,,, 처음에 이차배열 + switch문으로 접근했다가 구현이 제대로 안되고...ㅠ 거의 한시간은 걸려서 풀었다 흑흑 ㅠㅠ
'IT 공부 > Java' 카테고리의 다른 글
[코드업 기초100제] 1091~1099번 JAVA (0) | 2021.08.13 |
---|---|
[코드업 기초100제] 1081~1090번 JAVA (0) | 2021.08.12 |
[코드업 기초100제] 1071~1080번 JAVA (0) | 2021.08.11 |
[코드업 기초100제] 1063~1070번 JAVA (0) | 2021.08.10 |
[코드업 기초100제] 1053~1062번 JAVA (0) | 2021.08.09 |
Comments