앞의 문제들 중 비슷한 알고리즘이 있던 것 같지만, 같은 건 없다고 생각해서 올립니다. 문제를 푸는데 많은 approach가 있을 듯 싶습니다. 이 문제의 핵심은 비트 연산을 얼마나 잘 이해하고 있냐이기 때문에 비트 연산으로 풀어주세요.
input은 int n을 입력 받아 첫번째 row는 (n-1)의 O와 X, 두번째 row는 (n-2)의 O와 XX, 세번째 row는 (n-3)의 0와 XXX... n번째 row는 n의 X을 출력하시오.
입력 예시: 6
출력 예시:
OOOOOX
OOOOXX
OOOXXX
OOXXXX
OXXXXX
XXXXXX
public static void main(String[] args) {
int input = Integer.valueOf(new Scanner(System.in).nextLine());
for (int i = 0; i < input; i++)
System.out.println(
String.format("%0" + input + "d", Integer.valueOf(Integer.toBinaryString(
(int) (Math.pow(2, i + 1) - 1)))).replaceAll("0", "O").replaceAll("1", "X"));
}
수줍게 자바코드 올리고 갑니다......
import java.util.Scanner;
public class printfing_oxs {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int line, i, j, k;
while(true){
System.out.print("input number of line : ");
line = sc.nextInt();
if(line > 0)
break;
else
System.out.println("input number that bigger than '0'");
}
for(i = 0 ; i < line ; i++){
for(j = 0 ; j < line-(i+1) ; j++){
System.out.print("O");
}
for(k = 0; k < line - j ; k++){
System.out.print("X");
}
System.out.println();
}
}
}
2015年12月18日 16:17
자바입니다
public static void main(String[] args) throws Exception {
Scanner scan = new Scanner(System.in);
int n = Integer.parseInt(scan.nextLine());
for (int i = 0; i < n; i++) {
StringBuilder sb = new StringBuilder();
for (int j = 0; j < n - (i + 1); j++) {
sb.append("O");
}
for (int j = 0; j < i + 1; j++) {
sb.append("X");
}
System.out.println(sb.toString());
System.out.println();
}
2016年03月07日 16:29
public void printOXs(int n){
for(int i = 0 ; i < n ;i++){
for(int j = i ; j < n-1 ;j++) {
System.out.print("O");
}
for(int k = 0 ; k <= i ; k++) {
System.out.print("X");
}
System.out.println("");
}
}
2016年04月10日 22:53
자바로 코딩
1. 입력받은 수만큼 0 으로 채움
2. String 배열로 split
3. 맨 뒤에 부터 루프 돌면서 x 로 채움
public static void main(String[] args){
String o = "0";
String x = "x";
int inputNumber = 0;
String text = "";
String[] textArray;
Scanner sc = new Scanner(System.in);
System.out.print("입력 :: ==> ");
inputNumber = sc.nextInt();
for(int i=0; i<inputNumber; i++){
text += o;
}
textArray = text.split("");
for(int i=textArray.length-1; i>=0; i--){
textArray[i] = x;
for(int j=0; j<textArray.length; j++){
System.out.print(textArray[j]);
}
System.out.println("");
}
sc.close();
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("값 입력 : ");
int num = sc.nextInt();
for(int i= 1; i<=num; i++){
for(int j=0; j<num; j++){
if(num-i<=j) System.out.print("x");
else System.out.print("o");
}
System.out.println();
}
}
2016年08月10日 09:50
public class Printing {
public static void prn(int n) {
for (int i = 0; i <= n + 1; i++) {
if (i == 0 || i == n + 1)
continue;
for (int j = 0; j < n - i; j++) {
System.out.print("O");
}
for (int j = 0; j < i; j++) {
System.out.print("X");
}
System.out.println("");
}
}
public static void main(String[] args) {
prn(6);
}
}
2017年02月12日 23:01
import java.util.*;
public class printingOX {
public static void OXtest(int x){
String result = "";
for (int i =0;i<x;i++){
String blank ="";
for(int k=0;k<x-(i+1);k++){blank += "O";}
for(int l=0;l<i+1;l++){blank += "X";}
result += blank +"\n";
}
System.out.println(result);
}
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
int x = sc.nextInt();
printingOX.OXtest(x);
}
}
2017年03月13日 21:00
import java.util.Scanner;
import java.util.stream.IntStream;
import static java.lang.System.in;
public class PrintingOXs {
public static void main(String[] args) {
int n = new Scanner(in).nextInt();
IntStream.range(0, n).forEach(i -> IntStream.range(0, n).forEach(j -> {
System.out.print(j + i >= (n - 1) ? "X" : "O");
if (j == n - 1) System.out.println("");
})
);
}
}
2017年03月14日 10:38
풀이 작성
코딩도장은 프로그래밍 문제풀이를 통해서 코딩 실력을 수련(Practice)하는 곳입니다.