코딩도장

Printing OXs

앞의 문제들 중 비슷한 알고리즘이 있던 것 같지만, 같은 건 없다고 생각해서 올립니다. 문제를 푸는데 많은 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


비트연산 bit control
(追記) (追記ここまで)
댓글 작성은 로그인이 필요합니다.
비트연산은 0,1의 이진수에서만 가능한 것으로 알고 있는데요 비트연산으로 이 문제를 푸는 것이 가능한가요? 풀이를 봐도 비트로 해결한 건 없어보여서 질문 남깁니다 - myyh2357, 2018年10月02日 20:12 M D
+1 # python n = int(input()) tmp = 2**n-1 for i in range(n): print(bin(tmp<<(i+1))[-n:].replace('1','O').replace('0','X')) - Creator, 2018年10月03日 16:08 M D
파이썬에서 이진수의 1을 'O' 0을 "X"로 반환하고 비트연산 '시프트'를 이요하면 풀 수 있습니다. https://dojang.io/mod/page/view.php?id=2460 코딩도장 비트연산 개념 링크 확인 부탁 드려요 - 김보라, 2022年07月13日 15:53 M D
(注記) 상대에게 상처를 주기보다 서로에게 도움이 될 수 있는 댓글을 달아 주세요.

2개의 풀이가 있습니다.

(n=>console.log(Array.from(Array(n),(_,i)=>"O".repeat(n-i-1)+"X".repeat(i+1)).join("\n")))(6);
댓글 작성은 로그인이 필요합니다.
(注記) 상대에게 상처를 주기보다 서로에게 도움이 될 수 있는 댓글을 달아 주세요.
 function xoFunc(n){
 let x = "X";
 let o = "O";
 for(let i = 1; i<n+1; i++){
 let repeat = o.repeat(n-i)+x.repeat(i)
 console.log(repeat);
 }
 }
xoFunc(6)
repeat()를 사용하여 해결했습니다.
댓글 작성은 로그인이 필요합니다.
(注記) 상대에게 상처를 주기보다 서로에게 도움이 될 수 있는 댓글을 달아 주세요.

풀이 작성

(注記) 풀이작성 안내
  • 본문에 코드를 삽입할 경우 에디터 우측 상단의 "코드삽입" 버튼을 이용 해 주세요.
  • 마크다운 문법으로 본문을 작성 해 주세요.
  • 풀이를 읽는 사람들을 위하여 풀이에 대한 설명도 부탁드려요. (아이디어나 사용한 알고리즘 또는 참고한 자료등)
  • 작성한 풀이는 다른 사람(빨간띠 이상)에 의해서 내용이 개선될 수 있습니다.
풀이 작성은 로그인이 필요합니다.
목록으로
코딩도장

코딩도장은 프로그래밍 문제풀이를 통해서 코딩 실력을 수련(Practice)하는 곳입니다.

비트연산 x 1
bit control x 1

언어별 풀이 현황
전 체 x 284
python x 204
java x 26
cs x 5
php x 5
objectivec x 2
ruby x 1
기 타 x 31
cpp x 8
javascript x 2
코딩도장 © 2014 · 문의 [email protected]
피드백 · 개인정보취급방침 · RSS

AltStyle によって変換されたページ (->オリジナル) /